- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在数据基础设施和管道方面,我是一位经验丰富的 Azure 用户。然而,我是处理 XML 数据的新手,而且我的具体情况似乎有些复杂。在耗尽我的资源后,我向社区寻求帮助。
请注意,显示的所有数据均为演示数据。没有 PII 被泄露
XML 数据存在于我的 blob (ADLS2) 中。我正在使用数据工厂 V2 复制事件将数据复制到我的 Azure SQL 数据库中。所有权限均已适当配置。
请注意,在“申请人”部分内的 XML 中,您可以看到始终存在的“主要”的“类型”。如果有共同借款人,那么将会有第二个“申请人”部分,类型为“共同借款人”。
有问题的 XML 部分:
<LoanExport>
<Application>
<GeneratedDate>06/15/2023</GeneratedDate>
<BusinessApplication/>
<ApplicationNumber>132</ApplicationNumber>
<ApplicationType>Joint</ApplicationType>
<Business>false</Business>
<Applicants>
<Applicant>
<Type>primary</Type>
<FirstName>Robert</FirstName>
<LastName>Ice</LastName>
<MiddleName/>
<NameSuffix/>
<DateOfBirth>02/22/1992</DateOfBirth>
<CreditScore/>
<SocialSecurityNumber>666423221</SocialSecurityNumber>
<IsUSCitizen>true</IsUSCitizen>
<PhoneNumber>5555555555</PhoneNumber>
<WorkPhoneNumber/>
<CellularPhoneNumber>3334445555</CellularPhoneNumber>
<EmailAddress><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b0d4d5dddfdddd8981cad6c4f0c4d3d9d3c2d5d4d9c49ed3dfdd" rel="noreferrer noopener nofollow">[email protected]</a></EmailAddress>
<DriversLicense/>
<DriversLicenseState/>
<DriversLicenseExpirationDate/>
<DriversLicenseIssueDate/>
<MaritalStatus>false</MaritalStatus>
<Addresses>
<Address>
<Type>Primary</Type>
<Address>
<Number>1</Number>
<StreetPrefix/>
<StreetName>Hawk Drive</StreetName>
<StreetType/>
<StreetSuffix/>
<ApartmentOrSuiteNumber/>
<PostalCode>60750</PostalCode>
<City>FANTASY ISLAND</City>
<State>MD</State>
</Address>
<TimeAtResidenceYears>5</TimeAtResidenceYears>
<TimeAtResidenceMonths>7</TimeAtResidenceMonths>
<Ownership>Own</Ownership>
<MonthlyPayment currency="USD">550.00</MonthlyPayment>
</Address>
</Addresses>
<Employments>
<Employment>
<isCurrentEmployment>true</isCurrentEmployment>
<Status>Employed</Status>
<EmployerName>TCI</EmployerName>
<ContactName/>
<ContactPhone>1111111111</ContactPhone>
<JobPosition>Business Analyst</JobPosition>
<Address>
<StreetName/>
<PostalCode/>
<City/>
<State/>
</Address>
<TimeAtEmployerYears>10</TimeAtEmployerYears>
<TimeAtEmployerMonths>6</TimeAtEmployerMonths>
<GrossMonthlyIncome currency="USD">0.00</GrossMonthlyIncome>
</Employment>
</Employments>
<DenialReasons>
<DenialReason>
<Reason>Applicant has no SS number</Reason>
</DenialReason>
</DenialReasons>
</Applicant>
<Applicant>
<Type>coBorrower</Type>
<FirstName>asd</FirstName>
<LastName>asd</LastName>
<MiddleName>asd</MiddleName>
<NameSuffix>IV</NameSuffix>
<DateOfBirth>07/17/1973</DateOfBirth>
<CreditScore/>
<SocialSecurityNumber>333333333</SocialSecurityNumber>
<IsUSCitizen>true</IsUSCitizen>
<PhoneNumber>1231231231</PhoneNumber>
<WorkPhoneNumber/>
<CellularPhoneNumber>1231231231</CellularPhoneNumber>
<EmailAddress><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="187c7c7c7c586179707777367b7775" rel="noreferrer noopener nofollow">[email protected]</a></EmailAddress>
<DriversLicense/>
<DriversLicenseState/>
<DriversLicenseExpirationDate/>
<DriversLicenseIssueDate/>
<MaritalStatus>false</MaritalStatus>
<Addresses>
<Address>
<Type>Primary</Type>
<Address>
<Number/>
<StreetPrefix/>
<StreetName>asdasd</StreetName>
<StreetType/>
<StreetSuffix/>
<ApartmentOrSuiteNumber/>
<PostalCode>12345</PostalCode>
<City>Schenectady</City>
<State>NY</State>
</Address>
<TimeAtResidenceYears>17</TimeAtResidenceYears>
<TimeAtResidenceMonths>11</TimeAtResidenceMonths>
<Ownership>Living with relatives</Ownership>
<MonthlyPayment currency="USD">2222.00</MonthlyPayment>
</Address>
</Addresses>
<Employments>
<Employment>
<isCurrentEmployment>true</isCurrentEmployment>
<Status>Retired</Status>
<EmployerName/>
<ContactName/>
<ContactPhone/>
<JobPosition/>
<Address>
<StreetName/>
<PostalCode/>
<City/>
<State/>
</Address>
<TimeAtEmployerYears>0</TimeAtEmployerYears>
<TimeAtEmployerMonths>0</TimeAtEmployerMonths>
<GrossMonthlyIncome currency="USD">0.00</GrossMonthlyIncome>
</Employment>
</Employments>
<DenialReasons>
<DenialReason>
<Reason>Applicant has no SS number</Reason>
</DenialReason>
</DenialReasons>
</Applicant>
</Applicants>
我正在使用一个小型 SQL 表来测试是否能够正确提取主要数据和共同借款人数据。
CREATE TABLE [bronze].[loan_origination_application](
[application_number] [nvarchar](max) NULL,
[generated_date] [nvarchar](max) NULL,
[applicant_primary_first_name] [nvarchar](max) NULL,
[applicant_coborrower_first_name] [nvarchar](max) NULL
)
这是我的 Azure 数据工厂管道 JSON 的部分:
},
"sink": {
"type": "AzureSqlSink",
"writeBehavior": "insert",
"sqlWriterUseTableLock": false,
"disableMetricsCollection": false
},
"enableStaging": false,
"translator": {
"type": "TabularTranslator",
"mappings": [
{
"source": {
"path": "['Application']['GeneratedDate']"
},
"sink": {
"name": "generated_date",
"type": "String"
}
},
{
"source": {
"path": "['Application']['ApplicationNumber']"
},
"sink": {
"name": "application_number",
"type": "String"
}
},
{
"source": {
"path": "['Application']['Applicants']['Applicant']['FirstName']"
},
"sink": {
"name": "applicant_primary_first_name",
"type": "String"
}
},
{
"source": {
"path": "['Application']['Applicants']['Applicant'][1]['FirstName']"
},
"sink": {
"name": "applicant_coborrower_first_name",
"type": "String"
}
}
],
"collectionReference": "$['applications']['LoanExport']",
"mapComplexValuesToString": true
}
请注意,在我的所有数据库输出中,4 列分别是:'application_number'、'generate_date'、'applicant_primary_first_name'、'applicant_coborrower_first_name'
目前,这会导致数据库中出现以下写入:
132 06/15/2023 NULL asd
134 06/15/2023 Robert NULL
135 06/15/2023 Robert NULL
136 06/15/2023 Robert NULL
请注意,在这种情况下,如果有共同借款申请人(申请 132),它将提取正确的姓名,但会忽略主申请人。当没有共同借款申请人时,将准确拉入主申请人。
我尝试了以下以及其他类似的方法:
数据工厂 JSON:
{
"source": {
"path": "['Application']['Applicants']['Applicant'][0]['FirstName']"
},
"sink": {
"name": "applicant_primary_first_name",
"type": "String"
}
},
{
"source": {
"path": "['Application']['Applicants']['Applicant'][1]['FirstName']"
},
"sink": {
"name": "applicant_coborrower_first_name",
"type": "String"
}
}
数据库输出:
132 06/15/2023 Robert asd
134 06/15/2023 NULL NULL
135 06/15/2023 NULL NULL
136 06/15/2023 NULL NULL
在这种情况下,您可以看到主要申请人和共同借款人申请人类型均已正确提取,但仅当有共同借款人时而不是只有主要申请人时。
我还尝试了一些涉及过滤的 Chat GPT 建议,尽管我觉得它走在正确的轨道上,但没有帮助。
{
"source": {
"path": "['Application']['Applicants']['Applicant'][?(@['Type']=='primary')]['FirstName']"
},
"sink": {
"name": "applicant_primary_first_name",
"type": "String"
}
},
{
"source": {
"path": "['Application']['Applicants']['Applicant'][?(@['Type']=='coBorrower')]['FirstName']"
},
"sink": {
"name": "applicant_coborrower_first_name",
"type": "String"
}
}
数据库输出与上面效果相同。仅当共同借款人类型的申请人也在场时,才会拉动主要类型的申请人。
132 06/15/2023 Robert asd
134 06/15/2023 NULL NULL
135 06/15/2023 NULL NULL
136 06/15/2023 NULL NULL
为了清楚起见,我将提供仅包含主要类型申请人的申请的 XML。
<LoanExport>
<Application>
<GeneratedDate>06/15/2023</GeneratedDate>
<BusinessApplication/>
<ApplicationNumber>134</ApplicationNumber>
<ApplicationType>Individual</ApplicationType>
<Business>false</Business>
<Applicants>
<Applicant>
<Type>primary</Type>
<FirstName>Robert</FirstName>
<LastName>Ice</LastName>
<MiddleName/>
<NameSuffix/>
<DateOfBirth>02/22/1992</DateOfBirth>
<CreditScore>0</CreditScore>
<SocialSecurityNumber>666423221</SocialSecurityNumber>
<IsUSCitizen>true</IsUSCitizen>
<PhoneNumber>5555555555</PhoneNumber>
<WorkPhoneNumber/>
<CellularPhoneNumber>3334445555</CellularPhoneNumber>
<EmailAddress><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a0c4c5cdcf94d1d5d192d6d3e0d4c3c9c3d2c5c4c9d48ec3cfcd" rel="noreferrer noopener nofollow">[email protected]</a></EmailAddress>
<DriversLicense/>
<DriversLicenseState/>
<DriversLicenseExpirationDate/>
<DriversLicenseIssueDate/>
<MaritalStatus>false</MaritalStatus>
<Addresses>
<Address>
<Type>Primary</Type>
<Address>
<Number>1</Number>
<StreetPrefix/>
<StreetName>Hawk Drive</StreetName>
<StreetType/>
<StreetSuffix/>
<ApartmentOrSuiteNumber/>
<PostalCode>60750</PostalCode>
<City>FANTASY ISLAND</City>
<State>MD</State>
</Address>
<TimeAtResidenceYears>5</TimeAtResidenceYears>
<TimeAtResidenceMonths>7</TimeAtResidenceMonths>
<Ownership>Own</Ownership>
<MonthlyPayment currency="USD">550.00</MonthlyPayment>
</Address>
</Addresses>
<Employments>
<Employment>
<isCurrentEmployment>true</isCurrentEmployment>
<Status>Employed</Status>
<EmployerName>TCI</EmployerName>
<ContactName/>
<ContactPhone>1111111111</ContactPhone>
<JobPosition>Business Analyst</JobPosition>
<Address>
<StreetName/>
<PostalCode/>
<City/>
<State/>
</Address>
<TimeAtEmployerYears>10</TimeAtEmployerYears>
<TimeAtEmployerMonths>6</TimeAtEmployerMonths>
<GrossMonthlyIncome currency="USD">0.00</GrossMonthlyIncome>
</Employment>
</Employments>
<Stipulations>
<Stipulation>
<Description>VOI Applicant</Description>
<Status>Active</Status>
</Stipulation>
</Stipulations>
</Applicant>
</Applicants>
最佳答案
Azure SQL DB 可以使用 OPENROWSET
直接从 Blob 存储中读取。请参阅该技术的开始 here .
对于您的特定 XML 片段,使用 CROSS APPLY
对其进行操作以更深入地研究它:
DECLARE @xml XML = '<LoanExport>
<Application>
<GeneratedDate>06/15/2023</GeneratedDate>
<BusinessApplication/>
<ApplicationNumber>132</ApplicationNumber>
<ApplicationType>Joint</ApplicationType>
<Business>false</Business>
<Applicants>
<Applicant>
<Type>primary</Type>
<FirstName>Robert</FirstName>
<LastName>Ice</LastName>
<MiddleName/>
<NameSuffix/>
<DateOfBirth>02/22/1992</DateOfBirth>
<CreditScore/>
<SocialSecurityNumber>666423221</SocialSecurityNumber>
<IsUSCitizen>true</IsUSCitizen>
<PhoneNumber>5555555555</PhoneNumber>
<WorkPhoneNumber/>
<CellularPhoneNumber>3334445555</CellularPhoneNumber>
<EmailAddress>dem<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="385755550109425e4c784c5b515b4a5d5c514c165b5755" rel="noreferrer noopener nofollow">[email protected]</a></EmailAddress>
<DriversLicense/>
<DriversLicenseState/>
<DriversLicenseExpirationDate/>
<DriversLicenseIssueDate/>
<MaritalStatus>false</MaritalStatus>
<Addresses>
<Address>
<Type>Primary</Type>
<Address>
<Number>1</Number>
<StreetPrefix/>
<StreetName>Hawk Drive</StreetName>
<StreetType/>
<StreetSuffix/>
<ApartmentOrSuiteNumber/>
<PostalCode>60750</PostalCode>
<City>FANTASY ISLAND</City>
<State>MD</State>
</Address>
<TimeAtResidenceYears>5</TimeAtResidenceYears>
<TimeAtResidenceMonths>7</TimeAtResidenceMonths>
<Ownership>Own</Ownership>
<MonthlyPayment currency="USD">550.00</MonthlyPayment>
</Address>
</Addresses>
<Employments>
<Employment>
<isCurrentEmployment>true</isCurrentEmployment>
<Status>Employed</Status>
<EmployerName>TCI</EmployerName>
<ContactName/>
<ContactPhone>1111111111</ContactPhone>
<JobPosition>Business Analyst</JobPosition>
<Address>
<StreetName/>
<PostalCode/>
<City/>
<State/>
</Address>
<TimeAtEmployerYears>10</TimeAtEmployerYears>
<TimeAtEmployerMonths>6</TimeAtEmployerMonths>
<GrossMonthlyIncome currency="USD">0.00</GrossMonthlyIncome>
</Employment>
</Employments>
<DenialReasons>
<DenialReason>
<Reason>Applicant has no SS number</Reason>
</DenialReason>
</DenialReasons>
</Applicant>
<Applicant>
<Type>coBorrower</Type>
<FirstName>asd</FirstName>
<LastName>asd</LastName>
<MiddleName>asd</MiddleName>
<NameSuffix>IV</NameSuffix>
<DateOfBirth>07/17/1973</DateOfBirth>
<CreditScore/>
<SocialSecurityNumber>333333333</SocialSecurityNumber>
<IsUSCitizen>true</IsUSCitizen>
<PhoneNumber>1231231231</PhoneNumber>
<WorkPhoneNumber/>
<CellularPhoneNumber>1231231231</CellularPhoneNumber>
<EmailAddress><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="197d7d7d7d596078717676377a7674" rel="noreferrer noopener nofollow">[email protected]</a></EmailAddress>
<DriversLicense/>
<DriversLicenseState/>
<DriversLicenseExpirationDate/>
<DriversLicenseIssueDate/>
<MaritalStatus>false</MaritalStatus>
<Addresses>
<Address>
<Type>Primary</Type>
<Address>
<Number/>
<StreetPrefix/>
<StreetName>asdasd</StreetName>
<StreetType/>
<StreetSuffix/>
<ApartmentOrSuiteNumber/>
<PostalCode>12345</PostalCode>
<City>Schenectady</City>
<State>NY</State>
</Address>
<TimeAtResidenceYears>17</TimeAtResidenceYears>
<TimeAtResidenceMonths>11</TimeAtResidenceMonths>
<Ownership>Living with relatives</Ownership>
<MonthlyPayment currency="USD">2222.00</MonthlyPayment>
</Address>
</Addresses>
<Employments>
<Employment>
<isCurrentEmployment>true</isCurrentEmployment>
<Status>Retired</Status>
<EmployerName/>
<ContactName/>
<ContactPhone/>
<JobPosition/>
<Address>
<StreetName/>
<PostalCode/>
<City/>
<State/>
</Address>
<TimeAtEmployerYears>0</TimeAtEmployerYears>
<TimeAtEmployerMonths>0</TimeAtEmployerMonths>
<GrossMonthlyIncome currency="USD">0.00</GrossMonthlyIncome>
</Employment>
</Employments>
<DenialReasons>
<DenialReason>
<Reason>Applicant has no SS number</Reason>
</DenialReason>
</DenialReasons>
</Applicant>
</Applicants>
</Application>
</LoanExport>'
--SELECT @xml;
SELECT
l.c.value('(ApplicationNumber/text())[1]', 'INT') AS ApplicationNumber,
l.c.value('(GeneratedDate/text())[1]', 'DATE') AS GeneratedDate,
a.c.value('(FirstName/text())[1]', 'VARCHAR(10)') AS FirstName,
a.c.value('(LastName/text())[1]', 'VARCHAR(10)') AS LastName,
l.c.query('.') l,
l.c.query('.') a
FROM @xml.nodes('LoanExport/Application') l(c)
CROSS APPLY l.c.nodes('Applicants/Applicant') a(c);
关于通过 Azure 数据工厂 V2 将 XML 数据传输到 Azure SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76534372/
似乎有很多方法可以在 Azure 中自动使用 PowerShell。由于 ARM 模板是最新的,Azure 中的其他 PowerShell 选项是否已过时?这些工具/脚本之间有什么区别: Azure
我正在开发一个将托管在 Azure 中的 Web API。我想使用 Azure 诊断将错误记录到 Azure 表存储中。在经典门户中,我可以将日志配置为转到 Azure 表存储。 Classic Po
Azure 文件存储事件可以触发 Azure WebJob 或 Azure Function 吗? 例如,在文件夹“/todo/”中创建文件时。 最佳答案 我们目前没有任何 Azure 文件绑定(bi
我需要创建一个逻辑应用程序,我的要求是,我需要从 azure data Lake Gen2 文件夹迁移 json 文件,并根据某些值需要将该 json 转换为 xml,然后将其发送到 SQL。 因此,
我使用 VS Code 创建了 1 个 node.js 和 1 个 java Azure Function 当我使用 VS Code 将这两个函数部署到 Azure 时,我最终获得了这么多 Azure
收集 Azure 诊断数据时,暂存槽是否也会将诊断数据发送到 WadPerformanceCounters 表? 如果是这样,我该如何关闭它?或者在阅读诊断信息时如何区分暂存/生产。 我不想显示有关我
您好,我是 Azure 的新手。我有 VS 2012 和 Azure SDK 2.1,当我使用模拟器运行我的 Web 应用程序时一切正常。但是当我在 azure 上部署时出现错误消息: Could n
我很难区分 Azure 订阅和 Azure 租户有何不同?我尝试使用示例来弄清楚,但每次我得出的结论是它们在某种程度上是相同的?如果租户是组织在注册 Microsoft 云服务时接收并拥有的 Azur
如果我想在 Azure Insights 中设置自定义指标集合,并以(近)实时的方式可视化其中一些指标,并查看聚合的历史数据,我应该使用 Azure Metrics Explorer 还是 Azure
我想了解具有以下配置的 Azure 数据工厂 (ADF) 的现实示例/用例: Azure 集成运行时 (AIR) 默认值 自托管集成运行时(SHIR) 其他问题: 这两种配置(AIR 和 SHIR)是
请参阅下面来自 Azure 服务总线的指标。想要识别请求数量中的背景噪音|流量较低时的响应。假设振荡请求| session 中 amqp 握手的响应是潜在的。只是不明白这是什么类型的握手?从总线接收的
此问题与 Azure 事件中心和 Azure 服务总线之间的区别无关。 问题如下: 如果您将Azure Events Hub添加到您的应用程序中,那么您会注意到它依赖于Azure Service Bu
这两个事情是完全不同的,还是它们能完成的事情大致相同/相似? 最佳答案 Azure 辅助角色是“应用程序场”中您自己的一组虚拟机。您可以以分布式方式在它们上运行任何代码。通常,您编写业务代码以在这些服
我目前正在使用 Windows Azure 虚拟机来运行 RStudio, 我的虚拟机是 Windows Server R2 2012,它是 Azure 上的一项附加服务。 我还有一个 Azure 存
我们正在寻找托管一个网站(一些 css、js、一个 html 文件,但不是 aspx、一个通用处理程序)。 我们部署为: 1) Azure 网站 2) Azure 云服务 两种解决方案都有效。但有一个
我想从 Azure 表创建 blob。 AzCopy 支持此功能,但我找不到任何说明数据移动 API 也支持它的文档。此选项可用吗? https://azure.microsoft.com/en-us
This article表示 Azure 订阅所有者有权访问订阅中的所有资源。但是,要访问 Azure 数据库,必须是数据库中的用户,或者是 Azure Admin AD 组的成员。 无论 SQL 安
我尝试使用以下代码将 XML 文件上传到 Azure FTP 服务器: https://www.c-sharpcorner.com/article/upload-and-download-files-
除了 Azure 服务总线使用主题而 Azure 事件中心基于事件 - Azure 事件中心和 Azure 服务总线之间是否有任何根本区别? 对我来说,事件和消息之间没有真正的区别,因为两者只是不同类
我有一个通过虚拟网络网关连接到 Azure 虚拟网络的 Windows VPN 客户端。目标#1 是使用其内部 IP 地址连接到我的虚拟机。这有效。 第二个目标是使用其内部计算机名称进行连接(因为 I
我是一名优秀的程序员,十分优秀!