【问题标题】:Azure Data Factory - ingest XML using source connector and store as CSVAzure 数据工厂 - 使用源连接器摄取 XML 并存储为 CSV
【发布时间】:2020-08-31 12:14:44
【问题描述】:

我有一个数据集来从存储帐户中获取 XML 文档。当我推动它并将其存储为 CSV(或 JSON)(为清楚起见而编辑) 时,使用映射数据流或仅常规的 ADLS gen2 (edit)管道活动 我最终得到一个仅包含文档第一行的文件。任何经历过这一切的人都可以给我一个关于我做错了什么的提示吗? 如果有帮助,XML 映射如下所示:

<xs:element name="SAMPLE_XML">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="record">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="LABEL" type="xs:string" />
              <xs:element name="AUFNR" type="xs:unsignedInt" />
              <xs:element minOccurs="0" name="SYSST" />
              <xs:element minOccurs="0" name="STTXT" type="xs:string" />
              <xs:element name="STTXU" type="xs:string" />
              <xs:element name="AUART" type="xs:string" />
              <xs:element name="QMNUM" type="xs:string" />
              <xs:element name="QMTXT" type="xs:string" />
              <xs:element name="TPLNR" type="xs:string" />
              <xs:element name="BEARB" type="xs:string" />
              <xs:element name="EQUNR" type="xs:string" />
              <xs:element name="INGPR" type="xs:string" />
              <xs:element name="VAPLZ" type="xs:string" />
              <xs:element name="GSTRP" type="xs:string" />
              <xs:element name="GLTRP" type="xs:string" />
              <xs:element name="ZZLTRMN" type="xs:string" />
              <xs:element name="PRIOK" type="xs:string" />
              <xs:element name="REVNR" type="xs:string" />
              <xs:element name="ILART" type="xs:string" />
              <xs:element name="KTEXT" type="xs:string" />
              <xs:element name="UDATE_UTIME" type="xs:string" />
              <xs:element name="VORNR" type="xs:string" />
              <xs:element name="VSTTXT" type="xs:string" />
              <xs:element name="ARBPL" type="xs:string" />
              <xs:element name="ARBEI" type="xs:decimal" />
              <xs:element name="ISMNW" type="xs:decimal" />
              <xs:element name="AUFNT" />
              <xs:element name="PROID" />
              <xs:element name="ERNAM" type="xs:string" />
              <xs:element name="ERDAT" type="xs:string" />
              <xs:element name="AENAM" type="xs:string" />
              <xs:element name="AEDAT" type="xs:string" />
              <xs:element name="LTXA1" type="xs:string" />
              <xs:element name="ANLZU" type="xs:string" />
              <xs:element name="FSAVD" type="xs:string" />
              <xs:element name="FSAVZ" type="xs:time" />
              <xs:element name="FSEDD" type="xs:string" />
              <xs:element name="FSEDZ" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

【问题讨论】:

  • 你要加载到哪里?
  • 具有分层命名空间的 Azure 存储(又名 Data Lake Store gen 2)
  • 您是否尝试过在复制活动的映射设置中使用collectionReference?没有一个,它假定数据没有复杂类型。使用 collectionReference 遍历序列并将每个元素变成一行。

标签: azure-data-factory azure-data-factory-2


【解决方案1】:

@MartinJaffer-MSFT 在对我的问题的评论中建议我在映射设置中使用了 collectionReference 并且有效。 我没有使用它,因为描述仅指 JSON。 “选择或指定嵌套 JSON 数组的 JSONPath 以进行交叉应用。” 但是,是的,正如他所说的那样,问题解决了。谢谢。

【讨论】:

  • 感谢您告诉我!
猜你喜欢
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2021-11-15
  • 1970-01-01
  • 2020-03-18
  • 2021-12-31
  • 2021-04-23
相关资源
最近更新 更多