问题标签 [azure-data-flow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
802 浏览

json - 如何在 Mapping Dataflow Datafactory 中将 json 数据输出为数组而不是对象集?

在此处输入图像描述

我试图在将数据流映射到 json 文件的转换后输出我的数据。但是这些记录最终成为一组单独的 json 对象,而不是用逗号括在数组中,如下所示:

文件内容:{k1:v1,k2:v2} {k1:v3,k2:v4}

在此处输入图像描述

预期:[{k1:v1,k2:v2}, {k1:v3,k2:v4}]

在此处输入图像描述

这在读取时会导致问题,因为它不是有效的 json。同样的问题可以在复制活动中修复,因为有一个设置输出为对象数组而不是对象集。

任何人都可以帮助请..

0 投票
0 回答
157 浏览

azure - 映射数据流在根目录中创建输出文件,而不考虑给定的数据集路径

我正在尝试使用数据流将具有月份数据的文件拆分为单独的每日文件。我将文件名存储为派生列,并在接收器设置中将此列用作文件名,如下所示。列中的文件名类似于 Transactions_[date].csv

在此处输入图像描述

然后我在优化 -> 分区类型 - 键 -> 每个分区的唯一值 -> 键列 -> 文件名中基于此列对文件进行分区

在此处输入图像描述

问题:数据流运行完美。我可以在运行时在我想要的位置看到临时文件,但完成后,文件最终位于根位置(容器内)而不是我想要的文件夹内。

在此处输入图像描述

在此处输入图像描述

更新:数据集设置(现在硬编码,但将使用数据集参数) 在此处输入图像描述

0 投票
3 回答
3168 浏览

azure - Datafactory 映射数据流无法将日期时间格式化为 yyyy/MM/dd

我正在尝试在我的映射数据流中将日期从“2019-12-12”转换为“2019/12/12”。但我找不到可以转换为这种格式的数据流表达式。

我想要一个类似于 formatDateTime() 的函数,它可用于数据工厂表达式而不是数据流表达式。

试过 toDate() -> 不接受 yyyy/MM/dd

试过 toTimestamp() -> 不需要 yyyy/MM/dd

在此处输入图像描述 在此处输入图像描述

0 投票
2 回答
1180 浏览

azure - 天蓝色数据工厂中的数据流显示验证错误而不进行任何更改

我们试图使用数据流将数据从一个 cosmos 集合复制和转换到另一个。我们正在使用查询从集合中选择数据,当我点击全部验证选项时,数据工厂突然显示验证错误“数据流表达式使用当前上下文中不存在的函数/参数/列”。由于我们没有进行任何修改,因此也没有发布任何内容。此外,当我们尝试调试时,它也会显示相同的错误。有人遇到过类似的问题吗?

0 投票
2 回答
1357 浏览

azure-data-factory - Azure 数据工厂数据流 CSV 架构漂移到 parquet 静态目标删除列。可能吗?

尝试编写一个处理两个类似版本化 CSV 文件的 Azure 数据工厂数据流。版本 1 文件有 48 列。版本 2 文件有 50 列 - 与版本 1 相同的 48 列,但在末尾附加了 2 列。我想创建一个包含所有 50 列的目标 parquet 文件,以通过 polybase 加载到我的 SQLDW 中。从历史上看,我们在同一个 blob 源中有超过 6000 个文件,没有简单的方法来识别 48 列和 50 列的文件。以下是我最接近解决方案的方法。

  1. 启用了允许架构漂移的源 CSV。未在 CSV 数据集上定义架构
  2. MapDrifted 派生列 – 即 toString(byName('Manufacturer')) 所有 50 列
  3. Sink – 数据集是 parquet,其模式由 parquet 模板文件定义,其中包含所有 50 列。Sink 分区由 sourcefilename 设置。每个传入的文件都会在输出中生成一个 parquet 文件。

此解决方案适用于一组两个测试文件。一个有 48 列,一个有 50 列。创建了两个包含 50 列的 parquet 文件。一个文件填充到第 48 列,另一个文件填充所有 50 列。如果我在测试中添加更多包含 48 列的源文件。有 50 列的文件丢失了最后两列数据,最后只有 48 列?我认为这将是 ADF 可以解决的常见问题。即文件版本随时间变化。有什么建议么?下面是我的 ADF 的脚本

0 投票
1 回答
1295 浏览

azure - ADF 数据流,将 ForEach 活动的 @item() 传递给接收器的设置(?)

在我的数据流中,我有很多场景,我只是将数据从一个数据库更新到另一个(两个数据库中的表名相同)。我想避免重复操作,只使用 ADF ForEach。

所以我用我的表名定义了管道的变量。然后在 ForEach 活动中,我使用 @item() 作为嵌套在其中的数据流的参数。但是,我的问题在于:

在此处输入图像描述

我的关键列始终是表的名称+“ID”,所以我想做一些类似 concat(@item(), "ID") 的事情来让它工作。但是,这种“添加动态内容”不允许这样做。

在这种情况下,是否有某种方法可以从 ForEach 活动中引用项目?

先感谢您!

0 投票
1 回答
2363 浏览

json - ADF:将具有对象数组的 JSON 文件拆分为单个 JSON 文件,每个文件中包含一个元素

我正在使用 Azure 数据工厂并尝试将作为 JSON 对象数组的 JSON 文件转换为单独的 JSON 文件,每个文件都包含一个元素,例如输入:

但是,我尝试使用 Data Flow 将此数组拆分为包含 JSON 数组的每个元素的单个文件,但无法解决。理想情况下,我还想动态命名每个文件,例如 Cat.json、Dog.json 和“Guinea Pig.json”。

数据流是 Azure 数据工厂(版本 2)的正确工具吗?

0 投票
1 回答
573 浏览

azure-data-factory - ADF:我的数据流中忽略了接收器目录

任何人都对接收器数据集中的目录设置有疑问。这些文件最终位于仅包含文件系统值的位置:

在此处输入图像描述

所以文件最终在 /curated 但应该最终在 /curated/profiledata

0 投票
1 回答
205 浏览

azure - 在 Azure 数据流内的查找转换中使用动态数据源名称

在我的数据管道中,我试图合并两个数据集,一个来自 SQL 表的数据和一个 Azure Blob 存储中的相应 json 文件。SQL数据中的每一行都包含一个blob文件的名称,我想要实现的是,对于每一行获取列中提到的文件,将该json blob数据与行连接并写入另一个blob。

首先,我尝试在内部使用LookupForEach活动Data Pipelines,参数化的 blob 数据集以根据列中的值读取名称,但后来我没有找到任何方法将每个数据与 blob 数据一起写入,但它确实复制了 blob 文件。

然后我尝试使用Lookup Transformationinside Data Flows,但我未能使用列值作为第二个源的名称来合并数据。

无论如何,在数据管道或数据流内部是否有合并两个数据集,其中一个数据集的名称是动态的?

0 投票
1 回答
793 浏览

azure - ADF 数据流未在调试模式下完成

我正在使用映射数据流活动(Azure SQL DB 到 Synapse)在 Azure 数据工厂上构建管道。当我为源启用采样数据时,管道在调试模式下完成。当我禁用采样数据并运行调试时,我在管道中没有任何进展。即没有一个转换完成(黄点)

为了改善这一点,我是否应该从源/接收器增加批量大小(如何确定批量大小),增加分区数量(如何确定合适的分区数量)