我正在使用Azure数据工厂中的Copy data activity读取restapi json并将其保存在blob中作为json文件。如果文件中的记录数超过200 k条记录,我希望将文件拆分为多个文件。(例如:一个文件中的最大记录数是200 k)我如何才能实现这个Azure数据工厂复制数据活动。先谢谢你了!
ljo96ir51#
如果接收器是分隔文本,您可以使用复制活动本身将较大的文件拆分为较小的文件。为了做到这一点,在复制活动的接收器设置中,您可以为Max rows per file指定所需的值。
Max rows per file
接收器文件将以<sourcefilename>_<000xx>.txt创建。
<sourcefilename>_<000xx>.txt
1.使用源json数据集进行源转换。1.然后对每一行进行代理键转换和row_number。设置start value和step value为1。在这个演示中,我创建了一个名为row_num的列作为代理键。
row_num
1.然后添加派生列转换并添加一个新列。该列的值为toInteger((row_num-1)/10)。这里row_num是在第二步中创建的代理键列。10表示每个文件中的最大行数应为10。您可以将该值替换为所需的数字。
toInteger((row_num-1)/10)
10
1.然后再次添加派生列转换以将文件名添加为列。
1.然后使用json数据集添加一个sink转换。在sink设置中,给予Name file as column data作为文件名选项值。将file_name作为列名值。
Name file as column data
file_name
如果运行包含此数据流的管道,则将大Json文件拆分为最多包含10行的较小文件。
1条答案
按热度按时间ljo96ir51#
如果接收器是分隔文本,您可以使用复制活动本身将较大的文件拆分为较小的文件。为了做到这一点,在复制活动的接收器设置中,您可以为
Max rows per file
指定所需的值。接收器文件将以
<sourcefilename>_<000xx>.txt
创建。1.使用源json数据集进行源转换。
1.然后对每一行进行代理键转换和row_number。设置start value和step value为1。在这个演示中,我创建了一个名为
row_num
的列作为代理键。1.然后添加派生列转换并添加一个新列。该列的值为
toInteger((row_num-1)/10)
。这里row_num是在第二步中创建的代理键列。10
表示每个文件中的最大行数应为10。您可以将该值替换为所需的数字。1.然后再次添加派生列转换以将文件名添加为列。
1.然后使用json数据集添加一个sink转换。在sink设置中,给予
Name file as column data
作为文件名选项值。将file_name
作为列名值。如果运行包含此数据流的管道,则将大Json文件拆分为最多包含10行的较小文件。