小编use*_*585的帖子

当只有 1 个实例时,雪花 XML 解析不适​​用于嵌套结构

我们在 Snowflake 中有一个名为“portfolio”的临时表,它有一个名为“cdc_xml”的 Variant 列,用于存储由 Snowpipe 通过 S3 加载的 XML 文档。

XML 看起来像:

<xyz>
<jmsTimestamp>1570068080385</jmsTimestamp>
<portfolio>
<id>1234</id>
<portfolioNumber>909</portfolioNumber>
<portfolioName>Hello World</portfolioName>
<master>
  <attribute fieldName="active" value="1" oldValue="0"/>
  <attribute fieldName="name" value="Hello Co" oldValue="Hello Company"/>
  <attribute fieldName="startDate" value="04/02/1988" oldValue="04/01/1988"/>
</master>
<characteristics>
  <characteristic fieldName="currency" value="JPY" oldValue="USD"/>
  <characteristic fieldName="duplicate" value="YES" oldValue="NO"/>
  <characteristic fieldName="clone" value="TRUE" oldValue="FALSE"/>
</characteristics>
</portfolio>
</xyz>
Run Code Online (Sandbox Code Playgroud)

以下是 Snowflake 横向展平代码,用于解析 XML 以检索<master><attribute>级别的所有“@fieldName”和“@value”以及级别的所有“@fieldName”和“@value” <characteristics><characteristic>。所有这些数据都将作为名称-值对进行检索。

-- flatten the characteristics nested structure to get all characteristic nvps
select 'XYZ' as source_name,
       xmlget(xmlget(src1.cdc_xml, 'portfolio'), 'id'):"$"::string as …
Run Code Online (Sandbox Code Playgroud)

snowflake-cloud-data-platform

2
推荐指数
1
解决办法
1239
查看次数