我正在尝试使用USQL解析Json文件,但不断收到错误.
Json file@
{"dimBetType_SKey":1,"BetType_BKey":1,"BetTypeName":"Test1"}
{"dimBetType_SKey":2,"BetType_BKey":2,"BetTypeName":"Test2"}
{"dimBetType_SKey":3,"BetType_BKey":3,"BetTypeName":"Test3"}
Run Code Online (Sandbox Code Playgroud)
下面是USQL脚本,我正在尝试从上面的文件中提取数据.
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
DECLARE @Full_Path string =
"adl://xxxx.azuredatalakestore.net/2017/03/28/00_0_66ffdd26541742fab57139e95080e704.json";
DECLARE @Output_Path = "adl://xxxx.azuredatalakestore.net/Output/Output.csv";
@logSchema =
EXTRACT dimBetType_SKey int
FROM @Full_Path
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor();
OUTPUT @logSchema
TO @Output_Path
USING Outputters.Csv();
Run Code Online (Sandbox Code Playgroud)
但是USQL在Vertex错误时仍然失败
有帮助吗?
我有一个查找活动,可从Blob中的容器获取值。我有一个foreach活动,它与查找活动有关
在设置下,其值为:
@activity('LookupMessageType').output.value
Run Code Online (Sandbox Code Playgroud)
我还有另一个在该foreach活动中运行的复制活动。它将数据从cosmos DB复制到Azure Data Lake。

这是源数据集中的查询:
select c.Tag, data.assetTag, data.timestamp, data.jsonVersion, data.messageType, data.speed from c join data in c.data
where (data.speed> item().speed_Value) AND
(data.timestamp >= '@{formatDateTime(addhours(pipeline().TriggerTime, -1), 'yyyy-MM-ddTHH:mm:ssZ' )}'
AND data.timestamp < '@{formatDateTime(pipeline().TriggerTime, 'yyyy-MM-ddTHH:mm:ssZ' )}')
Run Code Online (Sandbox Code Playgroud)
运行此管道时出现错误:
{
"errorCode": "2200",
"message": "Failure happened on 'Source' side. ErrorCode=UserErrorDocumentDBReadError,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=DocumentDb operation failed: Message: {\"errors\":[{\"severity\":\"Error\",\"location\":{\"start\":231,\"end\":235},\"code\":\"SC2005\",\"message\":\"'item' is not a recognized built-in function name.\"}]}\r\nActivityId: *redacted*, documentdb-dotnet-sdk/1.21.1 Host/64-bit MicrosoftWindowsNT/6.2.9200.0.,Source=Microsoft.DataTransfer.ClientLibrary.DocumentDb,''Type=Microsoft.Azure.Documents.BadRequestException,Message=Message: {\"errors\":[{\"severity\":\"Error\",\"location\":{\"start\":231,\"end\":235},\"code\":\"SC2005\",\"message\":\"'item' is not a recognized built-in function name.\"}]}\r\nActivityId: redacted, documentdb-dotnet-sdk/1.21.1 Host/64-bit MicrosoftWindowsNT/6.2.9200.0,Source=Microsoft.Azure.Documents.Client,''Type=System.Runtime.InteropServices.COMException,Message=Exception from HRESULT: 0x800A0B00,Source=,'",
"failureType": "UserError", …Run Code Online (Sandbox Code Playgroud) 我的 ADF 设置当前的工作方式是,我有多个管道,每个管道至少包含一个活动。然后我有一个大管道将这些管道链接在一起。
但是,现在在大型“主”管道中,我想使用一个管道中活动的输出,然后将其传递到另一个管道。所有这一切都是由“主”管道精心策划的。
我的“主”管道看起来像这样:
我尝试做的是将参数添加到“执行管道2”,并且我尝试传递:
@activity('Execute Pipeline1').output.pipeline.runId.output.runOutput
@activity('Execute Pipeline1').output.pipelineRunId.output.runOutput
@activity('Execute Pipeline1').output.runOutput
Run Code Online (Sandbox Code Playgroud)
人们会如何去做这件事呢?
我使用下面的 Terraform 代码在托管虚拟网络中部署数据工厂 Azure IR:
resource "azurerm_data_factory_integration_runtime_azure" "ManagedIR" {
name = "ManagedIR"
data_factory_id = azurerm_data_factory.datafactory.id
location = var.location
resource_group_name = "****"
virtual_network_enabled = true
time_to_live_min = 60
}
Run Code Online (Sandbox Code Playgroud)
Terraform 中是否有任何设置可以让我启用“交互式创作”?
azure-virtual-network terraform azure-data-factory infrastructure-as-code
是否可以使用Azure Data Factory从REST API获取数据并将其插入Azure数据库表?
我正在考虑将我们的SSIS ETL移动到Azure Data Factory.我支持这种飞跃的论点是:
我们的来源和目标已经在云端.ADF是云原生的,所以看起来很合适.
ADF是一项服务,因此我们可以按需消费和支付.SSIS意味着许可成本,并且不会为按需消费自然放贷(我们考虑使用DevOps在临时基础上旋转ETL服务器)
使用SSIS以编程方式生成ETL代码需要非常特殊的技能,例如BIML或DTS API.通过转移到ADF,我希望在USQL中结合使用JSON和TSQL以及C#将使必要的技能更加通用.
我希望社区成员可以分享他们的经验,从而帮助我做出决定.
我有一个数据工厂,其管道复制活动如下:
{
"type": "Copy",
"name": "Copy from storage to SQL",
"inputs": [
{
"name": "storageDatasetName"
}
],
"outputs": [
{
"name": "sqlOutputDatasetName"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink"
}
},
"policy": {
"concurrency": 1,
"retry": 3
},
"scheduler": {
"frequency": "Month",
"interval": 1
}
}
Run Code Online (Sandbox Code Playgroud)
输入数据大小约为90MB,大约150万行,分为约.Azure存储中的20 x 4.5MB块blob文件.以下是数据示例(CSV):
A81001,1,1,1,2,600,3.0,0.47236654,141.70996,0.70854986 A81001,4,11,0,25,588,243.0,5.904582,138.87576,57.392536 A81001,7,4,1,32,1342,278.0,7.5578647,316.95795, 65.65895
接收器是S2类型的Azure SQL Server,其额定值为50 DTU.我创建了一个简单的表,其中包含合理的数据类型,没有键,索引或任何花哨的东西,只有列:
CREATE TABLE [dbo].[Prescriptions](
[Practice] [char](6) NOT NULL,
[BnfChapter] [tinyint] NOT NULL,
[BnfSection] [tinyint] NOT NULL,
[BnfParagraph] [tinyint] …Run Code Online (Sandbox Code Playgroud) performance azure azure-storage-blobs azure-data-factory azure-sql-database
目前 - 我们将数据从Hadoop内部部署服务器加载到SQL DW [通过ADF分阶段复制和DMG内部部署服务器].我们注意到ADF管道出现故障 - 当Hadoop内部部署服务器位置没有文件时[我们不希望我们的上游每天发送文件,因此其有效方案在Hadoop内部服务器位置上有ZERO文件] .
你有这种情况的解决方案吗?
下面给出错误消息
执行失败复制活动遇到用户错误:ErrorCode = UserErrorFileNotFound,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =找不到'HDFS'文件.,Source = Microsoft.DataTransfer.ClientLibrary,''Type = System.Net.WebException,Message =远程服务器返回错误:(404)Not Found.,Source = System,'.
谢谢,阿拉文德
这个问题可能没有得到很好的研究,但我需要在开始设计之前找到实现这个解决方案的正确方法。
问题是,我们可以使用 SSAS MDX 查询作为 Azure 数据工厂链接服务源中的数据源吗?
我正在尝试在 Azure 数据工厂中构建一个非常基本的数据流,从 blob 存储中提取 JSON 文件,对某些列执行转换,然后存储在 SQL 数据库中。我最初使用托管标识对存储帐户进行身份验证,但在尝试测试与源的连接时出现以下错误:
com.microsoft.dataflow.broker.MissingRequiredPropertyException: account 是 [myStorageAccountName] 的必需属性。com.microsoft.dataflow.broker.PropertyNotFoundException: 无法从 [myStorageAccountName] 中提取值 - RunId: xxx
我还在工厂验证输出中看到以下消息:
[MyDataSetName] AzureBlobStorage 不支持数据流中的 SAS、MSI 或服务主体身份验证。
有了这个,我假设我需要做的就是将我的 Blob 存储链接服务切换到帐户密钥身份验证方法。在我切换到帐户密钥身份验证并选择我的订阅和存储帐户后,在测试连接时出现以下错误:
连接失败无法连接到 https://[myBlob].blob.core.windows.net/:错误消息:远程服务器返回错误:(403) 禁止。(ErrorCode: 403, Detail: This request is not Authorized to perform this operation., RequestId: xxxx),请确保提供的凭据有效。远程服务器返回错误:(403) Forbidden.StorageExtendedMessage=,远程服务器返回错误:(403) Forbidden。活动 ID:xxx。
我试过直接从 Azure 中选择并手动输入密钥,无论哪种方式都得到相同的错误。需要注意的一件事是存储帐户只允许访问指定的网络。我尝试连接到不同的公共存储帐户,并且能够正常访问。ADF 帐户具有存储帐户参与者角色,并且我添加了我当前工作位置的 IP 地址以及我在此处找到的 Azure 数据工厂的 IP 范围:https : //docs.microsoft.com/en-我们/azure/data-factory/azure-integration-runtime-ip-addresses
另请注意,目前我有大约 5 个复制数据任务与 Managed Identity 完美配合,但我需要开始执行更复杂的操作。
这似乎与无法在 Azure 数据工厂中创建链接服务类似,但我分配的存储帐户参与者和所有者角色应该取代回复中建议的读者角色。我也不确定海报使用的是公共存储帐户还是私人帐户。
先感谢您。
azure azure-storage azure-storage-blobs azure-data-factory azure-blob-storage