如何排除 Azure 数据工厂中复制数据活动中的行?

2024-02-07

我已经构建了一个具有复制数据活动的管道,该活动从Azure Data Lake并将其输出到Azure Blob Storage.

在输出中,我可以看到我的某些行没有数据,我想将它们从副本中排除。在以下示例中,第二行没有有用的数据:

{"TenantId":"qa","Timestamp":"2019-03-06T10:53:51.634Z","PrincipalId":2,"ControlId":"729c3b6e-0442-4884-936c-c36c9b466e9d","ZoneInternalId":0,"IsAuthorized":true,"PrincipalName":"John","StreetName":"Rue 1","ExemptionId":8}
{"TenantId":"qa","Timestamp":"2019-03-06T10:59:09.74Z","PrincipalId":null,"ControlId":null,"ZoneInternalId":null,"IsAuthorized":null,"PrincipalName":null,"StreetName":null,"ExemptionId":null}

Question

在“复制数据”活动中,如何设置规则来排除缺少某些值的行?

这是我的管道的代码:

{
    "name": "pipeline1",
    "properties": {
        "activities": [
            {
                "name": "Copy from Data Lake to Blob",
                "type": "Copy",
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [
                    {
                        "name": "Source",
                        "value": "tenantdata/events/"
                    },
                    {
                        "name": "Destination",
                        "value": "controls/"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "AzureDataLakeStoreSource",
                        "recursive": true
                    },
                    "sink": {
                        "type": "BlobSink",
                        "copyBehavior": "MergeFiles"
                    },
                    "enableStaging": false,
                    "translator": {
                        "type": "TabularTranslator",
                        "columnMappings": {
                            "Body.TenantId": "TenantId",
                            "Timestamp": "Timestamp",
                            "Body.PrincipalId": "PrincipalId",
                            "Body.ControlId": "ControlId",
                            "Body.ZoneId": "ZoneInternalId",
                            "Body.IsAuthorized": "IsAuthorized",
                            "Body.PrincipalName": "PrincipalName",
                            "Body.StreetName": "StreetName",
                            "Body.Exemption.Kind": "ExemptionId"
                        }
                    }
                },
                "inputs": [
                    {
                        "referenceName": "qadl",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "datalakestaging",
                        "type": "DatasetReference"
                    }
                ]
            }
        ]
    }
}

这是一个非常好的问题(+1),几个月前我也有同样的问题,我很惊讶我在复制活动中找不到任何东西来处理这个问题(我什至尝试过使用容错功能,但没有运气) 。

鉴于我的管道中正在进行其他转变U-SQL https://learn.microsoft.com/en-us/u-sql/,我最终用它来完成这个任务。因此,我有一个而不是复制活动U-SQL 活动 https://learn.microsoft.com/en-us/azure/data-factory/transform-data-using-data-lake-analytics在 ADF 中使用不为空 https://learn.microsoft.com/en-us/u-sql/operators/comparison/is-null运算符,这取决于您的数据,但您可以使用它,也许您的字符串包含“NULL”或空字符串“”,这就是它的样子:

DECLARE @file_set_path string = "adl://myadl.azuredatalake.net/Samples/Data/{date_utc:yyyy}{date_utc:MM}{date_utc:dd}T{date_utc:HH}{date_utc:mm}{date_utc:ss}Z.txt";

@data =
    EXTRACT 
            [id] string,
            date_utc DateTime
    FROM @file_set_path
    USING Extractors.Text(delimiter: '\u0001', skipFirstNRows : 1, quoting:false);

@result =
    SELECT 

            [id] ,
            date_utc.ToString("yyyy-MM-ddTHH:mm:ss") AS SourceExtractDateUTC
    FROM @data
    WHERE id IS NOT NULL -- you can also use WHERE id <> "" or <> "NULL";

OUTPUT @result TO "wasb://samples@mywasb/Samples/Data/searchlog.tsv" USING Outputters.Text(delimiter: '\u0001', outputHeader:true);

注意:支持ADLS和Blob存储输入/输出文件 https://learn.microsoft.com/en-us/u-sql/Concepts/files/input-files#registerWABS

请告诉我这是否有帮助或者上面的示例是否不适用于您的数据。 希望有人会使用复制活动发布答案,这非常棒,但到目前为止这是一种可能性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何排除 Azure 数据工厂中复制数据活动中的行? 的相关文章

随机推荐

  • TFS Confluence 集成或替代方案

    我们可能会使用 Team Foundation Server TFS 但是 我发现它缺少 Confluence 管理需求文档的敏捷性 并且我认为 SharePoint 也没有那么好 我的问题是 是否可以将 TFS 与 Confluence
  • 防止幸运补丁/播放许可的方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我即将发布一个应用程序 但不希望它被盗版 有一些应用程序 例如 luckypatcher 即使您有许可 也可以为您破解该应用程序 有人
  • 我如何在android上设置相机防抖(图像稳定器)功能

    我制作了一个相机应用程序 我想添加防抖功能 但我找不到防抖 图像稳定器 的设置 请帮助我 通常图像稳定器是内置的相机功能 而OIS 光学图像稳定 是内置的hardware特征 到目前为止 很少有设备支持它们 如果设备没有内置功能 我认为您无
  • React 应用程序在部署后显示空白页面[重复]

    这个问题在这里已经有答案了 我之前在 GitHub 和 netlify 上创建并部署了单页 React 应用程序 它们都运行良好 问题在于使用react router的多页面应用程序 为了测试这一点 我尝试了几次不同的应用程序 一旦我实现了
  • 在特定日期重复 UILocalNotification

    我需要设置 UILocalNotification 我只需要从 DatePicker 获取小时和分钟 并且需要设置特定日期 比如 星期一 并每周一重复一次 我对此有两个问题 第一 是否可以在日期选择器的日期部分仅显示 日期名称 例如 星期日
  • JAX-RS (Resteasy 3.5.0.Final) + Wildfly 12 + Java 9 + maven = 404 未找到,但 JAX-RS (Resteasy 3.5.0.Final) + Wildfly 12 + Java 8 + ma

    我有一个简单的 Hello World 示例 JAX RS 项目 真的很简单又愚蠢 只是最小的配置 我打算在将来增强它 想象一下这样的事情 https robferguson org blog 2016 12 02 getting star
  • 在 django 中运行测试时设置 liveserver 端口

    我正在使用 django 作为 web 应用程序 并使用 docker 来部署它 我需要在带有硒的容器中测试它 我正在使用硒网格进行测试 为了与 docker 上的 liveserver 连接 我需要转发特定端口 但据我在 django 文
  • 添加特定 unicode 表情时 Discord.js message.react 失败

    昨天我开始使用discord js 的指南编写一个机器人 The core https github com discordjs guide tree master code samples command handling file se
  • 多个 id 的更新语句

    我有 3 个表 我需要通过计算其他两个表的数据来更新第三个表的列 update table3 set column3 select t2 column3 t1 column3 from table2 t2 with nolock join
  • 如何迭代 WeakMap?

    JavaScriptWeakMap https developer mozilla org en US docs Web JavaScript Reference Global Objects WeakMap不允许您通过设计获取密钥 长度或
  • 如何将 IEEE-754 格式整数输出为浮点数

    我有一个无符号长整数值 它表示使用 IEEE 754 格式的浮点数 在 C 中将其打印为浮点数的最快方法是什么 我知道一种方法 但我想知道 C 中是否有一个更好的方便实用程序 我所知道的方式的例子是 union unsigned long
  • 使用数据绑定和 MVVM 处理 onClick 事件

    我想设置一个onClickListener on an ImageView using Databinding并控制它ViewModel MVVM 在 xml 布局中我实现的所有内容Databinding作品 但 onClick 事件不起作
  • 在返回 observable 之前操作数据

    我对 Angular 2 和 Observables 的概念还很陌生 然而 对于经验丰富的专家来说 我想要实现的目标应该相当简单 所以 我有一个组件 其中有subscribed来自服务的可观察值 出于测试目的 我一直在使用数据数组来使我的组
  • 无法通过 Style 设置列表框的 GroupStyle?

    我正在尝试创建一个样式来为我的 ListBox 控件设置 GroupStyle 属性 但是我收到编译时错误 The Property Setter GroupStyle cannot be set because it does not h
  • 滑动侧边栏菜单 IOS 8 Swift [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法在 IOS Swift 中实现幻灯片侧边栏菜单 如 Facebook 应用程序 而不需要任何第三方库 我寻找解决方案 但我只
  • 一个好的(最好是免费的).Net 应用程序安装程序?

    我有一个使用 Sql Express 的 Net C 应用程序 开发已完成 现在我必须选择一些安装程序来部署我的应用程序 我尝试过 Microsoft Visual Studio 发布向导 但我又爱又恨它 我喜欢它 因为它可以检测客户端计算
  • Django 上的 memcache 不工作

    我有一个竞争条件Celery 受此启发 http ask github io celery cookbook tasks html ensuring a task is only execulated one at a time http
  • mysql 查询:按日期显示所有付款的摘要和发票总数

    I want this kind of result 从这些表中 我什至不知道如何用 php 来做到这一点 我什至尝试按日期加入付款和发票表 但没有成功 这是一个购买系统 此查询将按日期显示所有付款的摘要和发票总数 我想到了一个解决方案 首
  • 在Matlab中确定距海岸线的距离

    在 MATLAB 中 我有一组代表美国位置的纬度和经度对 我需要确定到最近海岸线的距离 我认为 MATLAB 有一个内置的美国经纬度数据库 我如何访问并使用它 关于如何有效确定距离还有什么建议吗 Update 后续问题 使用 meshm 时
  • 如何排除 Azure 数据工厂中复制数据活动中的行?

    我已经构建了一个具有复制数据活动的管道 该活动从Azure Data Lake并将其输出到Azure Blob Storage 在输出中 我可以看到我的某些行没有数据 我想将它们从副本中排除 在以下示例中 第二行没有有用的数据 Tenant