JSON データのモデリング
このセクションでは、本製品 がリレーショナルSQL とJSON サービスのギャップを埋めるために提供するさまざまなスキームを制御する方法を説明します。CData ADO.NET Provider for JSON には、ネストされたJSON データを扱うための2つの一般的な管理された方法があります。
- データ構造を解析し、既存の階層に基づいてリレーショナルモデルを構築する。
- 水平および垂直フラット化を使用して、ネストされた配列およびオブジェクトにドリルダウンする。
階層データの解析
デフォルトでは、本製品 はドキュメント内の行を自動的に検出するため、SQL でクエリするために基底のデータの構造を知る必要はありません。DataModel プロパティを設定して、本製品 がどのようにオブジェクト配列をテーブルにモデル化するかの基礎構成を選択します。階層データの解析 を参照してください。
自動スキーマ検出の設定
本製品 は、JSON 配列内の設定された数のオブジェクトをスキャンすることで、カラムおよびデータ型を自動的に検出します。FlattenObjects およびFlattenArrays プロパティを設定して、ネストされたデータをカラムにフラット化する方法を設定します。例については、自動スキーマ検出 を参照してください。
JSON へのSQL の実行
フラット化でアクセスできるあらゆるリレーションへは、アドホックなSQL クエリを使ってもアクセスが可能です。本製品 を使用すると、次の機能を使用してネストされたデータをクエリできます。
- 垂直フラット化:ネストされたオブジェクト配列に別々のテーブルとしてアクセスします。
- フリーフォームクエリ:どんなネストされた構造でもデータをフラット化せずにクエリできます。
- JSON 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。
スキーマのカスタマイズ
スキーマのカスタマイズ を使用すると、JSON ドキュメントの上に選択されたリレーショナル構造を投射することもできます。これにより、カラム名、データ型、 コレクション内の値の位置を選択することができます。
システムカタログ
システムテーブル は設定したスキーマ(カスタムスキーマ、または動的に検出されたスキーマ)を反映しています。Stored Procedures は、本製品 のデータ処理操作において、SELECT、INSERT、UPDATE、またはDELETE としてモデル化できない追加機能を表します。レポートされたストアドプロシージャは、Location で指定されたフォルダ内の.api ファイルで定義されています。Location が指定されていない場合は、インストールディレクトリのdb サブフォルダにあります。