Cmdlets for JSON

Build 22.0.8479

垂直フラット化

垂直フラット化クエリを使用すると、ドキュメントの配列を個別のテーブルのように取得することが可能です。

垂直フラット化クエリ構文

FROM 句では、ドット表記を使用してネストされた配列にドリルダウンできます。

SELECT * FROM [people.vehicles] 

Raw データ のpeople コレクションのJSON 構造について考えてみましょう。以下はコレクションのオブジェクトです。

{
  "people": [
    {
      "personal": {
        "age": 24,
        "gender": "F",
        "name": {
          "first": "Jane",
          "last": "Roberts"
        }
      },
      "vehicles": [
        {
          "type": "car",
          "model": "Toyota Camry",
          "insurance": {
            "company": "Car Insurance",
            "policy_num": "98765"
          },
          "maintenance": [
            {
              "date": "05-11-2017",
              "desc": "tires rotated"
            },
            {
              "date": "11-03-2017",
              "desc": ["oil change","fan belt replaced","coolant reservoir replaced"]
            }
          ]
        },
        {
          "type": "car",
          "model": "Honda Accord",
          "insurance": {
            "company": "Car Insurance",
            "policy_num": "98765"
          },
          "maintenance": [
            {
              "date": "10-07-2017",
              "desc": "new air filter"
            },
            {
              "date": "01-13-2018",
              "desc": "new brakes"
            }
          ]
        }
      ],
      "source": "phone"
    }
  ]
}

接続文字列

次の接続文字列を使用すると、本製品 はネストされたデータをパースしません。データはクエリを実行すると処理されます。デフォルトのFlattenObjects 機能により、トップレベルオブジェクトのプロパティはフラット化されます。ネストされたデータはJSON の集計として返されます。

URI=C:\people.txt;DataModel=Documents;JSONPath='$.people;'

クエリ

垂直フラット化ではvehicles 配列を別々のテーブルとして取得することを許可します。

SELECT * FROM [people.vehicles]
このクエリは、次のデータセットを返します。

insurance.policy_nummaintenancemodeltype
12345[{"date":"07-17-2017","desc":"oil change"},{"date":"01-03-2018","desc":"new tires"}]Honda Civiccar
12345[{"date":"08-27-2017","desc":"new tires"},{"date":"01-08-2018","desc":"oil change"}]Dodge Ramtruck
98765[{"date":"05-11-2017","desc":"tires rotated"},{"date":"11-03-2017","desc":"oil change"}]Toyota Camrycar
98765[{"date":"10-07-2017","desc":"new air filter"},{"date":"01-13-2018","desc":"new brakes"}]Honda Accordcar

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479