背景
- 使用Sqoop把ADS层数据导出到MySQL
- 使用
sqoop export
时要添加--columns
,避免一些奇奇怪怪的报错 - 使用正则表达式获取字段名
流程
- ADS层不分区,不压缩,行存
- ADS层建表SQL要有单独的文件,如果表更新就要更新该文件的建表语句
- 表名:ADS层的HIVE表有
ads_
前缀,对应到MySQL建表时去掉前缀 - 字段:ADS层表和MySQL表的 字段名及字段顺序都要一致,用`符号包裹
- 遍历ADS层建表语句,使用正则表达式获取 表名、所有字段名
- 传参到Sqoop命令
代码
ADS层建表语句(ADS层建表.sql
)
-- HIVE建表语句,字段用`符号包裹,表名不需要包裹
CREATE EXTERNAL TABLE ads_purchase_order_info (
`prch_order_id` BIGINT COMMENT '采购订单头id',
`exfactory_total_price` DOUBLE COMMENT '出厂价总额',
`insert_time` STRING COMMENT '数据插入日期'
) COMMENT '采购信息';
MySQL建表语句
CREATE TABLE purchase_order_info (
`prch_order_id` bigint