如何将数组< string>数据类型从存储在Amazon S3中的parquet文件加载到Azure数据仓库?

8ljdwjyq  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(146)

我正在使用存储在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);

}
}不是基元
我尝试了不同数据类型,但无法在外部表上运行选择查询。
请让我知道是否有其他选择。
谢谢

vmjh9lq9

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数据工厂应该很容易完成任务。
希望能帮上忙。

相关问题