问题标签 [azure-data-factory]
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.
azure-data-factory - Azure 数据工厂作业在 Hadoop/Map Reduce 中失败?
我的一些 ADF 作业随机失败,输出指向下面 /PackageJobs/~job/Status/stderr 文件中的数据。
请注意,这并不总是发生,它在某些作业上随机发生,而其他作业则正常完成。
什么可能导致这个问题?
stderr 数据如下:
azure - Azure 数据工厂是否适合从非 Azure REST API 下载数据?
考虑如下数据处理管道:
- 从托管在 Internet 上某处的 REST API 获取大量数据并将其保存到数据存储中。
- 对持久化数据执行一些复杂的数据转换。
- 将数据转换的结果保存在数据存储上。
为了在 Azure 中实施这样的管道,步骤 2 和 3 似乎非常适合作为Azure 数据工厂活动实施。
我的问题是 - 在 Azure 数据工厂活动中实施步骤 1 是否也有意义?
从技术上讲,可能可以编写一个 .Net 活动来执行数据下载和持久性。
azure - 了解 Azure 数据工厂管道中的开始和结束时间
我在 Azure“数据工厂”中设置了一个管道,目的是从存储中获取平面文件并将它们加载到 Azure SQL DB 中的表中。
此管道的模板指定我需要一个开始和结束时间,本教程将其设置为 1 天。
我试图理解这一点。如果它是 Linux 中的 CRON 作业或 Windows Server 中的计划任务,那么我只需告诉它何时开始(即每天早上 6 点),不管它需要多长时间才能完成。
这让我想到了几个相关的问题:
- 为什么我需要指定结束时间?
- 如果我不知道运行需要多长时间怎么办?
- 如果将来设置得太远,是否会冒数据管道无法及时完成的风险?
- 如果我设置得太早,管道会破裂吗?
- 为什么它被硬编码为日期而不是频率(即它说使用这种格式 - “2014-10-14T16:32:41Z”)
我发现了一个先前的问题,它对如何进行频率而不是硬编码日期有所了解,但是我上面的问题仍然没有得到解决方案的回答。
azure-data-factory - U-SQL 无法从 JSON 文件中提取数据
我试图使用 USQL 从 JSON 文件中提取数据。查询成功运行而不产生任何输出数据或导致“顶点失败快速错误”。
JSON 文件如下所示:
我的 U-SQL 脚本是
sql-server - Azure 数据工厂 - 从 Blob 批量导入到 Azure SQL
我有简单的文件FD_GROUP.TXT内容:
~0100~^~乳制品和蛋制品~
~0200~^~香料和香草~
~0300~^~婴儿食品~
~0400~^~油脂~
~0500~^~家禽产品~
我正在尝试使用 Azure 数据工厂将这些文件(有些有 700,000 行)批量导入 SQL 数据库。
策略是首先用^分隔列,然后用空字符替换波浪号(~),所以我丢失波浪号(~),然后插入。
1.SQL解决方案:
用^分隔的平面文件源和派生列转换以替换不必要的波浪线(~),如上图所示。
您如何使用 Microsoft Azure 数据工厂做到这一点?
我已将FD_GROUP.TXT作为输入上传到 Azure 存储 Blob ,并在 Azure SQL Server 上准备好表以供输出。
我有:
- 2 个链接服务:AzureStorage 和 AzureSQL。
- 2 个数据集:Blob 作为输入,SQL 作为输出
- 1 个管道
FoodGroupDescriptionsAzureBlob设置
FoodGroupDescriptionsSQLAzure设置
FoodGroupDescriptions管道设置
这件事在 Azure 数据工厂上不起作用 + 我不知道如何在这种情况下使用替换。任何帮助表示赞赏。
azure - Azure 数据工厂 - 管道执行顺序中的多个活动
我有 2 个 blob 文件要复制到 Azure SQL 表。我的管道有两个活动:
据我了解,一旦第一个活动完成,第二个活动就开始了。然后如何执行此管道,而不是转到数据集切片并手动运行?还有pipelineMode我怎样才能设置为 OneTime,而不是 Scheduled?
azure - Azure 数据工厂 - 复制活动空值不会更改为空错误
我有一个带有 txt 文件的天蓝色 blob。有些列有空值,所以当它们保存到数据库表中时,它们是 NULL。我可以让它与直接的 SQL 和 SSIS ETL 包一起工作。
行示例:
1002,100,Butter,whipped with salt BUTTER,WHIPPED W SALT,Y,0,6.38,,,
最后三个假设为空。
当我尝试使用 ADF 时,出现此错误:
复制活动遇到用户错误:ErrorCode=UserErrorInvalidDataValue,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column 'CarbohydratesFactor'包含无效值''。无法将 ' ' 转换为类型 'Decimal'。,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=输入字符串的格式不正确。,Source=mscorlib,'。
食物描述AzureBlob:
FoodDescriptionsSQLAzure:
管道:
我试图在管道中设置 "treatEmptyAsNull": true ,但没有运气。
azure - Azure 数据工厂与 SSIS
我正在考虑将我们的 SSIS ETL 迁移到 Azure 数据工厂。我支持这种飞跃的论点是:
我们的来源和目标已经在云端。ADF 是云原生的,因此看起来很合适。
ADF 是一项服务,因此我们可以按需消费和付费。SSIS 意味着许可成本,并且不能自然地将其用于按需消费(我们曾考虑使用 DevOps 来临时旋转 ETL 服务器)
使用 SSIS 以编程方式生成 ETL 代码需要非常特殊的技能,例如 BIML 或 DTS API。通过转向 ADF,我希望 JSON 与 USQL 中的 TSQL 和 C# 的结合将使必要的技能更加通用。
我希望社区成员可以分享他们的经验,从而帮助我做出决定。
azure - Azure 数据工厂 HDInsight 按需群集“无法实例化 SessionHiveMetaStoreClient”
我正在通过使用 Visual Studio 部署 ARM 模板来部署 Azure 数据工厂,基本上完全按照这个 Azure 教程一步一步来。
该模板定义了一个数据工厂,其中包含一个 Azure 存储链接服务(用于读取和写入源数据和输出数据)、一个输入数据集和一个输出数据集、一个 HDInsight 按需链接服务以及一个运行 HDInsight HIVE 活动的管道运行 HIVE 脚本,将输入数据集处理成输出数据集。
一切部署成功,管道活动开始。但是,我从活动中收到以下错误:
线程“主”java.lang.RuntimeException 中的异常:java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 在 org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:445) 在 org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) 在 org.apache.hadoop .hive.cli.CliDriver.main(CliDriver.java:619) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop。 util.RunJar.main(RunJar.java:136)
我发现了各种帖子,例如这篇文章和这篇文章,表明该问题是由 HIVE 元存储数据库名称中的破折号或连字符引起的已知错误。
我的问题是使用 ARM 模板按需部署 HDInsigh 集群,我无法访问集群本身,所以我无法进行任何手动配置更改(按需的想法是它是暂时的,只是创建服务于一组需求,然后删除自身)。
只需按照教程一步一步地操作,即可轻松重现该问题。
我发现的唯一可能的一线希望是通过设置hcatalogLinkedServiceName 如此处记录,它旨在允许您使用自己的 Azure SQL 数据库作为配置单元元存储。但是,这也不起作用 - 如果我使用该属性,我会得到:
“JamesTestTutorialARMDataFactory/HDInsightOnDemandLinkedService”失败并显示消息“<strong>HCatalog 集成未为此订阅启用。”</p>
我的订阅不受限制,并且应该具有 Azure 的所有功能。所以现在我完全被卡住了。目前看来,使用 Hive 和按需 HDInsight 基本上是不可能的?
如果有人能想到任何可以尝试的方法,我会全力以赴!
谢谢
azure - 来自 Azure 的具有已知 IP(或范围)的服务请求
我正在开发一个基于 Azure 的项目,我们需要与客户网络内部的基于 REST 的 API 进行通信,最终目标是在 Azure 数据工厂中使用响应(如果您有兴趣,可以使用 JSON)
我们已经讨论了与此服务对话的多种方式,例如使用站点到站点的 vNET 并运行作业以将响应保存到 blob 存储,还查看在批处理服务中运行的自定义活动(但我们无法连接这个到vNET)和其他一些没有真正去任何地方的东西......
我们遇到的关键绊脚石是我们需要一种方法来保证来自 Azure 端的 IP,以便客户端可以将进入其网络的请求列入白名单。
有没有人对我们如何实现这一点有任何好主意.. 理想的情况是我们可以在 ADF 中编写自定义活动,该活动在批处理服务中运行,该服务调用公共 IP,但这些调用只能来自已知 IP或者至少是一小部分IP ..
提前致谢!