datafaker的使用

1、顺序枚举使用

使用场景:

顺序取值还是很有意义的,比如枚举一城市代码BJ, WH,SH,枚举二城市名称北京,武汉,上海;我们希望枚举一取值BJ时,枚举二取值北京,而不是枚举一随机取值BJ,枚举二随机取值武汉,这样在业务上就对应乱了

处理方案:order_enum类型

比如表里面有两个字段需要一一对应,一个是城市编码,一个城市名,
city_code|||varchar|||[:order_enum(file://code.txt)]
city_name|||varchar|||[:order_enum(file://names.txt)]

其中code.txt为城市编码,names.txt为城市名,两个文件行数相同,每行内容一一对应
用order_enum按顺序取值,能确保两个字段取得城市编码和城市名一一对应

2、如何导数据到hive

(1)hive类型,hive版本支持ACID的,可以单条写入

(2)file类型,按照格式生成数据文件,然后上传文件到hdfs

datafaker file /home out.txt 10 --meta meta.txt
请仔细阅读文档其他参数和使用举例

3、关于enum类型的需求(数据从数据库中获取,待验证)

enum类型能否增加支持从数据库中取数据;例如
[:enum(mysql://root:root@123.123.1.23:3306/test:{table_name:column_name})]
[:enum(mysql://root:root@123.123.1.23:3306/test:{table_name:column_name1+'|'+column_name2})]
[:enum(mysql://root:root@123.123.1.23:3306/test:table_name:column_name1+'|'+column_name2)]
希望允许多表关联查询数据;例如
[:enum(mysql://root:root@123.123.1.23:3306/test:{table_name1:[column_name1,same_column],table_name2:[column_name2,same_column]})]
或者
[:enum(mysql://root:root@123.123.1.23:3306/test:{table_name1:[column_name1,same_column],table_name2:[column_name2,same_column]})]
甚至可以加上过滤条件

4、怎么生成一对多的数据关系

比如城市--地区
北京---地区(北京的地区随机)
前一个城市确定,然后后面的地区要是北京地区的,随机

方案:

可以将城市弄一个文件,地区弄一个文件,然后用order_enum关联,例如:
city.txt文件内容
北京
北京
北京
北京
四川
四川
四川
广东
广东

eara.txt文件内容
朝阳
昌平
海淀
大兴
成都
达州
绵阳
广州
中山

注意这两个文件相同行号中城市和地区应该对应,总行数一致

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值