【问题标题】:Create hive partition based on time zone根据时区创建 hive 分区
【发布时间】:2019-07-08 12:54:57
【问题描述】:

我正在尝试基于在 GCS 中存储为镶木地板的文件实现配置单元表,路径如 gs://abc/dt=02-02-2019/hr=02(基于 UTC 的物理分区)

现在我想创建两个配置单元表,其中逻辑分区基于时区,一个用于 UTC,另一个用于 CET,我如何进行分区,以便基于日期和小时的分区根据时区选择 dt 和 hr 值。如果它还可以适应日光节约等,那就太好了。

我正在使用气流创建外部配置单元表。

【问题讨论】:

  • 逻辑分区不清楚。你能提供一些例子吗
  • 逻辑分区只不过是我的hive表的分区,它是物理存储的gcs,分区基于dt和hr(日期和小时基于UTC),现在我只想创建一个hive 表在此之上,但 hive 分区(dt 和 hr)应基于不同的时区,例如基于 CET
  • 而时区是现有列还是可以从现有列派生?
  • 我怀疑您的问题与Airflow 有很大关系。您必须将 taskconvert execution_date (我认为目前仅在 UTC 中)转换为 CET / 任何其他时区,然后将其传递给您的 Hive DML / DDL (HQL) 声明

标签: hive airflow hive-partitions


【解决方案1】:

有一个博客很好地解释了这一点https://medium.com/udemy-engineering/supporting-multiple-time-zones-on-hive-with-single-data-source-b884cba46451

基本思想是将数据存储为UTC时间。并按 UTC 小时划分。这样我们就可以有两个蜂巢表。一个蜂巢表按原样指向,即 UTC。 但是对于让一个 PT 配置单元表,您会将第 18 小时指向 UTC 第 11 小时,因此每个都会发生映射转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 2021-11-13
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多