【问题标题】:HdInsight Azure DW Polybase to Hive Table (ORC) with Date partition is failing带有日期分区的 HdInsight Azure DW Polybase 到 Hive 表 (ORC) 失败
【发布时间】:2017-11-06 17:51:03
【问题描述】:

我正在尝试在 Azure 数据仓库中为 Hive 表创建一个 polybase 外部表,该表存储为 ORC(HD Insight Data Lake)并在我查询外部表时按日期分区,它在 SQL 服务器中失败而没有任何适当的错误消息。

当我不使用分区时,我可以使用外部表访问 hive ORC 表,但是使用分区时,我在没有任何正确错误消息的情况下出现错误。

错误:

Msg 106000,16 级,状态 1,33 行索引:23,大小:23

详情:

蜂巢表:

创建外部表 DL_ClickStream_fnl(

.

.) PARTITIONED BY(TIME_STAMP Date) 存储为 ORC;

Azure DW 外部表:

创建外部表 [stg].[dl_clickstream_procd] (

.

.

) WITH (DATA_SOURCE = [AzureDataLakeStore_clusters],LOCATION = N'clusters/BLMSpark/hive/warehouse/coremetrics.db/dl_clickstream_procd',FILE_FORMAT = [ORCFileFormat_DL],REJECT_TYPE = VALUE,REJECT_VALUE = 2)

文件格式:

使用 (FORMAT_TYPE = ORC) 创建外部文件格式 [ORCFileFormat_DL]

【问题讨论】:

  • 嗯,Azure SQL 数据仓库目前不只支持 Polybase 连接到 Azure Blob 存储和 Azure Data Lake 吗?查看黄色箭头here。 SQL Server 2016 和 APS 可以连接到 Hadoop。微妙的哈。

标签: azure hiveql azure-hdinsight azure-data-lake polybase


【解决方案1】:

在 Hive 中,分区列是从目录元数据派生的虚拟列。 PolyBase 直接读取文件无法填充分区列。在您的 SQL DW 外部表 DDL 中,删除按列分区,您的负载应该可以工作。

【讨论】:

    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 2018-02-09
    • 2015-09-13
    • 1970-01-01
    • 2023-03-04
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多