将hive分区的orc数据加载到bigquery中

lstz6jyr  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(443)

我有按ts\u date和orid划分的hive数据,下面是文件的示例云存储url

myhivepartionedbucket/crunched-logs/mrs-suds-sloaders/loader-log/output/{year}/{month}/{Day}/{Hour}/{Min}/ts_date={yyyy-mm-dd}/orid={orid}/file.orc

下面是生产中的云存储实际url

myhivepartionedbucket/crunched-logs/mrs-suds-sloaders/loader-log/output/2020/08/06/00/30/ts_date=2020-08-05/orid=6691/part-202008060030.orc

这种结构将存在于每个月的所有日子里,24小时与所有orid的每小时分开
现在我们要计划将这类数据加载到大查询中,按ts\u日期进行分区,按orid进行聚类。
我在控制台上试过一个没有分区的文件,我可以加载数据,但是如何通过按ts\u日期分区和按orid集群来定期调度和加载这种数据呢。
我对gcp还不熟悉,对google提供的文档理解不够,所以有人能给我一些在python的ui或程序上运行的建议吗
提前谢谢

beq87vna

beq87vna1#

可以使用带有公共前缀的通配符,例如:

myhivepartionedbucket/crunched-logs/mrs-suds-sloaders/loader-log/output/*.orc

加载所有包含orc数据的文件。
确保在通过控制台加载orc数据时启用源数据分区。
控制台允许您设置几个参数,包括分区和集群。但是,为了按列进行分区,需要从orc文件推断的架构至少有一列日期或时间戳类型,否则,加载orc数据时此选项不可用。由于您计划使用通过uri路径(ts\u date)检测到的列进行分区,此选项可能不可用,因此我的建议是将其作为常规表加载,然后根据常规表的查询结果创建分区/聚集表。
最后,一旦您有了分区/集群表,就可以将其用作云存储的bigquery数据传输服务的目标,它允许您计划从云存储到bigquery的周期性数据加载。

相关问题