スタイルシートに基づくXMLシュレッディング - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - XMLデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/amr1556233250442.ditamap
dita:ditavalPath
ja-JP/amr1556233250442.ditaval
dita:id
B035-1140
Product Category
Software
Teradata Vantage

XMLシュレッディングとは、XML文書から値を抽出し、データベース内のテーブルに取り込む処理です。XML文書のツリー構造からデータベースのテーブル形式構造へのマッピングを定義する1つの方法は、注釈付きスキーマを使用することです。代わりに、XSLTスタイルシートに基づくマッピングを使用する方法があります。

メモリを効率的に使用できるように、ストリーム シュレッディングは文書全体をメモリにロードしません。XSLTベースのシュレッディングはメモリに文書をロードし、文書を1回のパスで処理するのと比べて柔軟性が向上します。

XSLTベースのシュレッディングは、シュレッディング ストアド プロシージャを使用して行なわれます。
  • XSLT_SHRED - 単一XML文書シュレッディングに使用します
  • XSLT_SHRED_BATCH - 複数のXML文書のシュレッドに使用します

XML文書をシュレッドするには、以下の標準タスクを実行します。

  1. XML文書をロードして、ステージング テーブルのXML列にシュレッドします。
    XML文書は、W3C XML標準に準拠する必要があります。次に、そのようなXML文書の例を示します。
    <<?xml version="1.0"?>
    <Root>
     <predictixOfferMessage>
      <offer>
       <offerId>1000002</offerId>
      </offer>
      <mediaBlock>
       <mediaBlockId>90000000010002</mediaBlockId>
      </mediaBlock>
     </predictixOfferMessage>
    </Root>
    
  2. 以下の2列からなる結果セットを返すSQL問合わせを定義します。
    • ID列
    • シュレッドするXML文書を含むXML列
  3. XML文書をターゲット テーブルにシュレッドする方法を定義するXSLTスタイルシートを作成します。
  4. XSLTスタイルシートを簡単に参照できるように、例えばスタイルシート リポジトリ テーブルにXSLTスタイルシートを格納します。
  5. XSLT_SHRED_BATCHストアド プロシージャに以下の引数を指定して呼び出します。
    • ステップ2で定義したSQL問合わせ
    • ステップ4で保存したXSLTスタイルシート
    SQL問合わせで返されるXML文書は、XSLTスタイルシートのマッピングに基づいてシュレッドされます。この結果、ターゲット テーブルにそのような文書からのデータが取り込まれます。ターゲットの列にNULLが挿入される場合もあります(XMLで対応する要素が空か欠落している場合など)。入力XML文書で所定の要素パスが見つからない場合、NULLが格納されます。