垂直フラット化
垂直フラット化クエリを使用すると、ネストされたエレメントを個別のテーブルのように取得することが可能です。
垂直フラット化クエリ構文
FROM 句では、ドット表記を使用してネストされたエレメントにドリルダウンできます。
SELECT * FROM [people.vehicles]
例
Raw データ ドキュメントの単一の配列エレメント(people 配列のperson オブジェクト)を考えてみましょう。
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<people>
<personal>
<age>20</age>
<gender>M</gender>
<name>
<first>John</first>
<last>Doe</last>
</name>
</personal>
<vehicles>
<type>car</type>
<model>Honda Civic</model>
<insurance>
<company>ABC Insurance</company>
<policy_num>12345</policy_num>
</insurance>
<maintenance>
<date>07-17-2017</date>
<desc>oil change</desc>
</maintenance>
<maintenance>
<date>01-03-2018</date>
<desc>new tires</desc>
</maintenance>
</vehicles>
<vehicles>
<type>truck</type>
<model>Dodge Ram</model>
<insurance>
<company>ABC Insurance</company>
<policy_num>12345</policy_num>
</insurance>
<maintenance>
<date>08-27-2017</date>
<desc>new tires</desc>
</maintenance>
<maintenance>
<date>01-08-2018</date>
<desc>oil change</desc>
</maintenance>
</vehicles>
<source>internet</source>
</people>
</root>
接続文字列
次の接続文字列を使用すると、本製品 はネストされたデータをパースしません。データはクエリを実行すると処理されます。デフォルトのFlattenObjects 機能により、トップレベルエレメントのプロパティはフラット化されます。ネストされたデータはXML の集計として返されます。
URI=C:\people.txt;DataModel=Document;XPath='/root/people;'
クエリ
垂直フラット化ではvehicles エレメントを別々のテーブルとして取得することを許可します。
SELECT * FROM [people.vehicles]このクエリは、次のデータセットを返します。
features | insurance.company | insurance.policy_num | maintenance | model | type |
<features>sunroof</features><features>rims</features> | ABC Insurance | 12345 | <maintenance><date>07-17-2017</date><desc>oil change</desc></maintenance><maintenance><date>01-03-2018</date><desc>new tires</desc></maintenance> | Honda Civic | car |
<features>lift kit</features><features>tow package</features> | ABC Insurance | 12345 | <maintenance><date>08-27-2017</date><desc>new tires</desc></maintenance><maintenance><date>01-08-2018</date><desc>oil change</desc></maintenance> | Dodge Ram | truck |
<features>upgraded stereo</features> | Car Insurance | 98765 | <maintenance><date>05-11-2017</date><desc>tires rotated</desc></maintenance><maintenance><date>11-03-2017</date><desc>oil change</desc></maintenance> | Toyota Camry | car |
<features>custom paint</features><features>custom wheels</features> | Car Insurance | 98765 | <maintenance><date>10-07-2017</date><desc>new air filter</desc></maintenance><maintenance><date>01-13-2018</date><desc>new brakes</desc></maintenance> | Honda Accord | car |