将配置单元表迁移到google bigquery

b1uwtaje  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(312)

我正在尝试设计一种数据管道,将配置单元表迁移到bigquery中。配置单元正在hadoop本地群集上运行。这是我目前的设计,其实很简单,只是一个shell脚本:
对于每个表源配置单元表{
插入覆盖表
target_avro_hive_table SELECT * FROM source_hive_table; 使用将生成的avro文件移动到google云存储中 distcp 创建第一个bq表: bq load --source_format=AVRO your_dataset.something something.avro 从bigquery本身处理任何转换问题,因此从刚刚编写的表中选择并手动处理任何转换
}
你觉得有道理吗?有没有更好的方法,也许是使用spark?我对处理转换的方式不满意,我希望避免两次创建bigquery表。

2w3kk1z5

2w3kk1z51#

是的,您的迁移逻辑是合理的。
我个人更喜欢将特定类型的强制转换直接转换到生成avro(配置单元)数据的初始“配置单元查询”中。例如,配置单元中的“decimal”类型Map到avro“type”:“type”:“bytes”,“logicaltype”:“decimal”,“precision”:10,“scale”:2
bq将只接受主类型(这里是“bytes”),而不是logicaltype。所以这就是为什么我发现直接在Hive中投射更容易(这里是“加倍”)。同样的问题也发生在日期配置单元类型上。

相关问题