Ang*_*der 0 parquet azure-data-factory
我正在使用 Azure 数据工厂的复制活动将数据从 Oracle DB 复制到 ADLS。此副本的结果是一个 parquet 文件,其中包含与我复制的表相同的数据,但生成的 parquet 文件的名称如下所示:
data_32ecaf24-00fd-42d4-9bcb-8bb6780ae152_7742c97c-4a89-4133-93ea-af2eb7b7083f.parquet
Run Code Online (Sandbox Code Playgroud)
我需要这个名字像这样存储:
TableName-Timestamp.parquet
如何使用 Azure 数据工厂做到这一点?
另一个问题:有没有办法在写入此文件时添加层次结构?例如,我使用相同的管道来写入多个表,并且我想为每个表创建一个新文件夹。如果我为每个要写入的表创建一个新的数据集,我就可以做到这一点,但我想知道是否有办法自动执行此操作(使用动态内容)。
提前致谢。
您可以设置管道参数来实现它。
这是我尝试将数据从 Azure SQL 数据库复制到 ADLS 的示例,它也应该适用于 Oracle 到 ADLS。
设置管道参数:设置需要复制到ADLS的Azure SQL/Oracle表名:
源数据集:
添加动态内容设置表名:
来源:
接收器数据集:
添加动态内容以设置 Parquet 文件名:
下沉:
添加动态内容以使用管道参数设置 Parquet 文件名:
格式:表名-时间戳.parquet:
@concat(pipeline().parameters.tablename,'-',utcnow())
Run Code Online (Sandbox Code Playgroud)
然后执行管道,您将获得 Parquet 文件,如下所示TableName-Timestamp.parquet:
关于你的另一个问题:
您可以为每个表添加动态内容集文件夹名称,只需按照以下步骤操作:
例如,如果我们复制表“test”,我们将得到的结果:
container/test/test-2020-04-20T02:01:36.3679489Z.parquet
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
2458 次 |
| 最近记录: |