1

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

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

错误:

Msg 106000, Level 16, State 1, Line 33 Index: 23, Size: 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)

文件格式:

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

4

1 回答 1

0

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

于 2017-11-02T17:48:45.943 回答