我正在使用存储在Amazon S3上的 parquet 文件。需要提取这些文件,并将其中的数据加载到Azure数据仓库中。
我的计划是:
Amazon S3 ->使用SAP BODS将parquet文件移动到Azure Blob ->在这些parquet文件上创建外部表->暂存->事实/尺寸表
现在的问题是,在其中一个parquet文件中,有一列存储为array<string>
。我可以使用varchar数据类型为该列创建外部表,但如果我执行任何SQL查询操作(即选择),则会抛出下面的错误。
消息106000,级别16,状态1,第3行
HdfsBridge::recordReaderFillBuffer -填充记录读取器缓冲区时遇到意外错误:ClassCastException:可选组状态(LIST){
重复组袋{
optional binary array_element (UTF8);
}
}不是基元
我尝试了不同数据类型,但无法在外部表上运行选择查询。
请让我知道是否有其他选择。
谢谢
1条答案
按热度按时间vmjh9lq91#
在Azure上,有一个名为
Azure Data Factory
的服务,我认为它可以在您当前的场景中使用,如下面的文档Parquet format in Azure Data Factory
所述。以下连接器支持Parquet格式:Amazon S3、Azure Blob、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure文件存储、文件系统、FTP、Google Cloud Storage、HDFS、HTTP和SFTP。
您可以尝试按照教程
Load data into Azure SQL Data Warehouse by using Azure Data Factory
将具有parquet格式的Amazon S3设置为源,以直接将数据复制到Azure SQL数据仓库。由于使用自动模式解析从parquet格式文件中读取数据,因此使用Azure数据工厂应该很容易完成任务。希望能帮上忙。