一、概述

规范各项目使用的地区数据,地区相关字典需要统一。

国家统计局是有公布全国各个地区街道数据,这样就可以从公布的数据中爬取下来。

对应公布的数据链接:http://www.stats.gov.cn/sj/tjbz/qhdm/

二、地区数据定义

地区数据01

地区编码规范

位数 含义
1-2位 省级(省、自治区、直辖市)
3-4位 地级(地级市、地区)
5-6位 县级(县、县级市、区)
7-9位 乡级(乡、镇、街道、类似乡级单位)
10-12位 村级(村民委员会、居民委员会、类似村民委员会、类似居民委员会)

城乡编码规范

编码 含义
111 主城区
112 城乡结合区
121 镇中心区
122 镇乡结合区
123 特殊区域
210 乡中心区
220 村庄

三、数据获取

具体爬取的代码就不贴上了,说一下一些特殊处理的情况

  1. 直辖市县级与地区存储相同
    地区数据02

上图3101代表上海市(省级)/市辖区(地级),拉取数据后实际存储为上海市(省级)/上海市(地级)

  1. 县级市辖区忽略

地区数据03

上图440101代表广东省(省级)/广州市(地级)/市辖区(县级), 直接忽略该数据

  1. 网络问题
    拉取数据会出现网络异常,需要做补偿及实时保存到临时文件,重跑时可根据临时文件已存在的可不拉取

四、表设计

根据数仓维度方式设计表,如果不满足表名可自行更改。索引自行添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Create Table `dim_area_province` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`edit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '创建者',
`editor` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '更新者',
`deleted` tinyint NOT NULL DEFAULT '0' COMMENT '软删除标识',
`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
`province_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '省份索引',
`province_name` varchar(64) NOT NULL DEFAULT '' COMMENT '省份名称',
primary key (`id`)
) comment = '地区 - 省级(省、自治区、直辖市)';


Create Table `dim_area_city` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`edit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '创建者',
`editor` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '更新者',
`deleted` tinyint NOT NULL DEFAULT '0' COMMENT '软删除标识',
`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
`province_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '省份索引',
`province_name` varchar(64) NOT NULL DEFAULT '' COMMENT '省份名称',
`city_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '省份索引',
`city_name` varchar(64) NOT NULL DEFAULT '' COMMENT '省份名称',
primary key (`id`)
) comment = '地区 - 地级(地级市、地区)';


Create Table `dim_area_county` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`edit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '创建者',
`editor` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '更新者',
`deleted` tinyint NOT NULL DEFAULT '0' COMMENT '软删除标识',
`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
`province_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '省份索引',
`province_name` varchar(64) NOT NULL DEFAULT '' COMMENT '省份名称',
`city_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '城市索引',
`city_name` varchar(64) NOT NULL DEFAULT '' COMMENT '城市名称',
`county_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '县区索引',
`county_name` varchar(64) NOT NULL DEFAULT '' COMMENT '县区名称',
primary key (`id`)
) comment = '地区 - 县级(县、县级市、区)';


Create Table `dim_area_town` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`edit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '创建者',
`editor` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '更新者',
`deleted` tinyint NOT NULL DEFAULT '0' COMMENT '软删除标识',
`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
`province_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '省份索引',
`province_name` varchar(64) NOT NULL DEFAULT '' COMMENT '省份名称',
`city_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '城市索引',
`city_name` varchar(64) NOT NULL DEFAULT '' COMMENT '城市名称',
`county_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '县区索引',
`county_name` varchar(64) NOT NULL DEFAULT '' COMMENT '县区名称',
`town_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '乡镇索引',
`town_name` varchar(64) NOT NULL DEFAULT '' COMMENT '乡镇名称',
primary key (`id`)
) comment = '地区 - 乡级(乡、镇、街道)';


Create Table `dim_area_village` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`edit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`creator` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '创建者',
`editor` varchar(32) NOT NULL DEFAULT 'admin' COMMENT '更新者',
`deleted` tinyint NOT NULL DEFAULT '0' COMMENT '软删除标识',
`version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
`province_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '省份索引',
`province_name` varchar(64) NOT NULL DEFAULT '' COMMENT '省份名称',
`city_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '城市索引',
`city_name` varchar(64) NOT NULL DEFAULT '' COMMENT '城市名称',
`county_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '县区索引',
`county_name` varchar(64) NOT NULL DEFAULT '' COMMENT '县区名称',
`town_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '乡镇索引',
`town_name` varchar(64) NOT NULL DEFAULT '' COMMENT '乡镇名称',
`village_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '居委索引',
`village_name` varchar(64) NOT NULL DEFAULT '' COMMENT '居委名称',
`village_type_key` decimal(20, 0) NOT NULL DEFAULT '0' COMMENT '城乡分类索引',
`village_type_name` varchar(64) NOT NULL DEFAULT '' COMMENT '城乡分类名称',
primary key (`id`)
) comment = '地区 - 村级(居委)';

sql初始化数据,百度云
https://pan.baidu.com/s/1OshfQlzGJkWayFVB4KO4fw?pwd=mhhm