山西移动迁移数据库结构设计 精品.docx
- 文档编号:24037898
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:16
- 大小:35.83KB
山西移动迁移数据库结构设计 精品.docx
《山西移动迁移数据库结构设计 精品.docx》由会员分享,可在线阅读,更多相关《山西移动迁移数据库结构设计 精品.docx(16页珍藏版)》请在冰豆网上搜索。
山西移动迁移数据库结构设计精品
山西移动
经营分析系统基础数据迁移项目
数据库结构
设计说明书
1.数据库系统设计
1.1.数据库设计
安装好AsterCluster后,系统默认有beehive数据库。
我们建立sxaster作为迁移项目的数据库。
sxaster下建立若干schema,分别存放不同类型的数据,包含所有关于数据的schema、视图、sys_calendar等。
其中nc_system和public是两个系统schema。
nc_schema是存放关于数据库的元数据信息,包括一些只读视图、系统自带的MR函数,所有的用户都可以读写publicschema,它存放开发的MR函数。
具体说明如下:
CREATEDATABASEsxasterENCODING='UTF8';
Schema名称
说明
public
系统schema,存放自带的MR函数和元数据信息视图
nc_system
系统schema,存放开发的MR函数
ptemp3
系统运行时所使用的临时表在这里产生,一般在系统上线后建立临时表。
pcde3
存放码表数据
pdata3
存放除话单外的而基础数据
pmid3
存放中间层的数据
ttemp
测试的临时数据
sys_calendar
日历表
Plog
加载过程中的出错信息
Pcdr3
话单数据
Pcdevw3
码表数据的视图
Pdatavw3
基础数据的视图
Pmidvw3
中间层数据的视图
Pcdrvw3
话单数据的视图
…….
……
1.2.数据库角色设计
数据库中默认的角色有db_admin、amc_admin、catalog_admin、node_admin、node_viewer、process_admin、process_runner、process_viewer8个,
db_admin是管理角色、catalog_admin角色查看所有的系统表,不能访问所有的数据库
角色名称
描述
备注
db_admin
管理角色,建用户、库
默认存在
catalog_admin
可以查看所有的系统表
默认存在
amc_admin
监控AMC
默认存在
node_admin
node_viewer
process_admin
process_runner
process_viewer
r_analysis
省公司经营分析角色
新建
r_dev
开发测试
新建
r_user
省公司普通查询
新建
r_arc
备份恢复
新建
r_cmcc
地市角色
新建
1.3.数据库用户设计
安装好AsterCluster后,系统有两个默认的用户db_superuser和beehive,其中db_superuser是管理员用户,它可以无限制地访问和管理所有的Aster数据库中的对象。
用户名
描述
备注
db_superuser
超级用户
默认存在
beehive
没有管理权限
默认存在
aster_admin
仅次于db_superuser
新建
dtetl
加载用户
新建
dtmid
中间层用户
新建
dtsyc
同步到TD用户
新建
ddsyn
一经用户
新建
dwpar
开发用户
新建
dspar
开发用户
新建
省公司用户
新建
u01---u11
地市用户
新建
dtexp
导出用户
新建
2.数据库权限设计
数据库的权限会动态调整。
dtetl
select
insert
update
delete
create
installfile
createfunction
usage
EXECUTE
plog
√
√
√
√
√
×
×
√
√
ptemp3
√
√
√
√
√
×
×
√
√
pdata3
√
√
√
√
√
×
×
√
√
pcde3
√
√
√
√
√
×
×
√
√
pcdr3
√
√
√
√
√
×
×
√
√
pmid3
×
×
×
×
×
×
×
√
√
pdatavw3
√
×
×
×
√
×
×
√
√
pcdevw3
√
×
×
×
√
×
×
√
√
pcdrvw3
√
×
×
×
√
×
×
√
√
pmidvw3
×
×
×
×
×
×
×
√
√
ttemp
×
×
×
×
×
×
×
√
√
sys_calendar
√
×
×
×
×
×
×
√
√
dtmid
select
insert
update
delete
create
installfile
createfunction
usage
EXECUTE
plog
×
×
×
×
×
×
×
√
√
ptemp3
×
×
×
×
×
×
×
√
√
pdata3
×
×
×
×
×
×
×
√
√
pcde3
×
×
×
×
×
×
×
√
√
pcdr3
×
×
×
×
×
×
×
√
√
pmid3
√
√
√
√
√
×
×
√
√
pdatavw3
√
×
×
×
×
×
×
√
√
pcdevw3
√
×
×
×
×
×
×
√
√
pcdrvw3
√
×
×
×
×
×
×
√
√
pmidvw3
√
×
×
×
√
×
×
√
√
ttemp
×
×
×
×
×
×
×
√
√
sys_calendar
√
×
×
×
×
×
×
√
√
dtsyc
select
insert
update
delete
create
installfile
createfunction
usage
EXECUTE
plog
×
×
×
×
×
×
×
√
√
ptemp3
×
×
×
×
×
×
×
√
√
pdata3
×
×
×
×
×
×
×
√
√
pcde3
×
×
×
×
×
×
×
√
√
pcdr3
×
×
×
×
×
×
×
√
√
pmid3
×
×
×
×
×
×
×
√
√
pdatavw3
√
×
×
×
×
×
×
√
√
pcdevw3
√
×
×
×
×
×
×
√
√
pcdrvw3
√
×
×
×
×
×
×
√
√
pmidvw3
√
×
×
×
×
×
×
√
√
ttemp
×
×
×
×
×
×
×
√
√
sys_calendar
√
×
×
×
×
×
×
√
√
dwpar/dspar
select
insert
update
delete
create
installfile
createfunction
usage
EXECUTE
plog
×
×
×
×
×
×
×
√
√
ptemp3
×
×
×
×
×
×
×
√
√
pdata3
×
×
×
×
×
×
×
√
√
pcde3
×
×
×
×
×
×
×
√
√
pcdr3
×
×
×
×
×
×
×
√
√
pmid3
×
×
×
×
×
×
×
√
√
pdatavw3
√
×
×
×
×
×
×
√
√
pcdevw3
√
×
×
×
×
×
×
√
√
pcdrvw3
×
×
×
×
×
×
×
√
√
pmidvw3
√
×
×
×
×
×
×
√
√
ttemp
√
√
√
√
√
×
×
√
√
sys_calendar
√
×
×
×
×
×
×
√
√
dtsyc/dsexp
select
insert
update
delete
create
installfile
createfunction
usage
EXECUTE
plog
×
×
×
×
×
×
×
√
√
ptemp3
×
×
×
×
×
×
×
√
√
pdata3
×
×
×
×
×
×
×
√
√
pcde3
×
×
×
×
×
×
×
√
√
pcdr3
×
×
×
×
×
×
×
√
√
pmid3
×
×
×
×
×
×
×
√
√
pdatavw3
√
×
×
×
×
×
×
√
√
pcdevw3
√
×
×
×
×
×
×
√
√
pcdrvw3
√
×
×
×
×
×
×
√
√
pmidvw3
√
×
×
×
×
×
×
√
√
ttemp
×
×
×
×
×
×
×
√
√
sys_calendar
√
×
×
×
×
×
×
√
√
u01-u11
select
insert
update
delete
create
installfile
createfunction
usage
EXECUTE
plog
×
×
×
×
×
×
×
√
√
ptemp3
×
×
×
×
×
×
×
√
√
pdata3
×
×
×
×
×
×
×
√
√
pcde3
×
×
×
×
×
×
×
√
√
pcdr3
×
×
×
×
×
×
×
√
√
pmid3
×
×
×
×
×
×
×
√
√
pdatavw3
√
×
×
×
×
×
×
√
√
pcdevw3
√
×
×
×
×
×
×
√
√
pcdrvw3
√
×
×
×
×
×
×
√
√
pmidvw3
√
×
×
×
×
×
×
√
√
ttemp
√
√
√
√
√
×
×
√
√
sys_calendar
√
×
×
×
×
×
×
√
√
3.数据库命名规范
2.
3.
4.
4.1.表类型
Aster建立的表的类型有两种:
A:
事实表(fact):
它是默认的;必须有distributebyhash;推荐时间类型的字段作为分区字段;选取distributekey的原则是单一列、非空、数据类型是int
smallint
bigint
numeric
numeric(p)
numeric(p,a)
text
varchar
varchar(n)
UUID
bytea
中的一种,不能使用char、date作为distributekey;
大的dimensiontable也使用distributebyhash
B:
维表(dimension):
一般是未压缩的,DISTRIBUTEBYREPLICATION,代表该维表在每个VWORKER上复制,未使用DISTRIBUTEBY,则默认是默认DISTRIBUTEBYREPLICATION。
对于表的记录数大于1000行,不考虑DISTRIBUTEBYREPLICATION。
4.2.持久类型
Aster的表有三种持久类型:
A:
PERMANENT
建表时默认是PERMANENT;
结果数据都是PERMANENT类型。
B:
ANALYTIC
一些不需要永久保留的数据可以建成ANALYTIC,如加载阶段的临时表、中间过程的表;
这种表用的资源比regulartable少,存储空间也比regulartable少一半
C:
temp
仅仅在事务中可以创建;
事务结束,这种类型的表立即消失;
其他用户无法使用;
4.3.存储类型
Aster的表有两种类型的存储:
A:
列存储
对于select操作是比较好的,但是不能update、deletecolumnartable;
B:
行存储
建表默认是行存储;
4.4.压缩类型
有四种压缩类型,分别是High、Medium、Low、None。
推荐使用LOW类型。
综上,可以参考下列语句进行建表:
createfacttablepmid3.tb_mid_bll_vc_user_day
(
deal_datedate
sys_type_codecharacter
(2)
user_idnumeric(14,0)
......
)
distributebyhash(user_id)
storagerow
presslow
partitionbyrange(deal_date)---一级分区
(
partitiontb_mid_bll_vc_user_day20XX0120(START'20XX-01-20'END'20XX-01-20'INCLUSIVEpresslow)
partitiontb_mid_bll_vc_user_day_20XX0209(START'20XX-02-09'END'20XX-02-09'INCLUSIVEpresslow)
......
partitionbylist(region_code)---二级分区
(
partitiontb_mid_bll_vc_user_day_region_code1(VALUES('01')presslow)
partitiontb_mid_bll_vc_user_day_region_code2(VALUES('02')presslow)
......
)
)
;
4.5.表的定义规范
Aster数据库中的表基本都是从TD迁移过来的,所以命名规范基本遵循TD的命名规范。
所有数据库对象,包括表(Table)、视图(View)均应遵循以下命名规范。
Prefix_Subject_Body_Suffix,其中:
1)
2)
3)
为主体名,应该能够清楚地说明对象的含义;4)
名称的各部分之间以"_"(下划线)连接,各部分中出现的英文字母全部采用大写字母。
此外,aster中数据库对象名称(包括字段名称)长度<63字符,所有在
部分尽量采用缩写形式,必要时做必要截取。(常用缩写可参照附录一)
ASTER中每个表字段数限制是小于1600个。
前缀
数据库对象
TB
表(Table)
视图的名称与对应的表名一致,存于不同的schema
主题域命名规则:
主题域
主题域缩写
主题域中文描述
PARTY
PAR
参与人主题
GROUP
GRP
集团主题
PRODUCT
PDT
产品主题
NETWORK
NET
网络主题(网管、交换机等)
FINANCE
FIN
帐务主题
MARKET
MKT
市场营销主题
LOCATION
LOC
地理区域主题
BILLING
BLL
计费详单域(服务使用)
BALANCE
BAL
结算域
EVENT
EVT
事件域(营业受理、变更)
SERVICE
SER
客户服务
RESOURCE
RES
资源域(渠道、卡、号、线)
CODE
CDE
代码表
REFERRENCE
REF
参照表
部分命名规则:1)只能由字母、数字和"_"(下划线)构成;
2)主体名应采用能够准确反映其中文含义的英文单词或英文单词缩写构成,避免出现英文单词和汉语拼音混用的局面;
3)主体名应尽量与源系统中的命名相一致,除非其命名违反上两条规则。
对于数据库中的表,如因数据量庞大,需按时间分表存放时,需遵循此规则加上后缀。
需按日分开存放的表,后缀为‘YYMMDD’,需按月分开存放的表,后缀为‘YYYYMM’。
此外,数据库中还经常存放一些历史表,其后缀用HIS。
4.数据库备份设计
由于备份有物理备份和逻辑备份两种,一般我们采用逻辑备份对数据库中的重要表进行备份。
根据经验,一次备份的表不超过10张,恢复不超过7个。
将需要备份的表写在一个文件里,如file.txt
在备份管理器上执行ncluster_backup-hlocalhost-ffile.txt
执行”showbackups”命令,可以监控备份的过程。
5.数据库工作负载设计
Aster工作负载管理功能可以分配资源,使两个不同优先级的工作负载同时运行时,影响达到最小。
它由两部分组成:
WorkloadsPolicies:
可以分为备份、ETL、Admin、一般查询、加载等;
Serviceclass:
分配工作负载所占的资源,一个SQL语句获得多少硬件资源。
以下设计工作负载的资源分配,会随着应用的调整,动态进行调整。
5.
5.1.Servicecalss
目前,我们设计五种serviceclass,
name
priority
weight
MemorySoftLimitPct
MemoryHardLimitPct
LoadClass
High
60
60
65
MidClass
High
40
40
45
monClass
Medium
80
80
85
RegionClass
Low
50
50
55
DefaultClass
low
50
50
55
5.2.WorkloadPolicy
设计了5种WorkloadPolicy
Order
WorkloadPolicyname
Predicate
Status
ServiceClass
1
Load
username=’dtetl’
Active
LoadClass
2
Mid
username=’dtmid’
Active
MidClass
3
Query
roles=’r_user’
Active
monClass
4
Normal
roles=’r_dev’
Active
RegionClass
5
default
true
Active
DefaultClass
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山西移动迁移数据库结构设计 精品 山西 移动 迁移 数据库 结构设计