Starting the Builder
上部のアイコンバーにあるImport CSV/XML/JSON アイコンをクリックすると、Code Editor から Query Builder を起動できます:
Builder Elements
これが完全なクエリビルダーの外観です:
ビルダーはいくつかのペインで構成されています。
Source Pane
ビルダーで最も重要なのはソースペインです。2つのオプションからお選びいただけます:
- File source タブを選択し、ファイルシステムにあるアクセス可能なファイルからデータを取得します。 これを使用するには、File タイプのデータソースが接続されていて、このディレクトリ内のファイルを読み取る適切な権限を持っていることが必要です。
- Web service タブを選択し、REST API からデータを取得します。REST API は URL 経由でデータを取得することができ、いくつかのパラメータを追加することもできます(Web Service アクセスのパラメータの設定方法については、Communicating with Web Services のセクションを参照してください)。データを取得するためには、Web サービス型のデータソースが必要です。
正しいデータソースを選択した後、フォルダアイコンをクリックし、開くダイアログからファイルを選択します:
Selecting an encoding for XML (Source Pane)
エンコーディングフィールドのデフォルト値はUTF-8です。選択されたXMLファイルのプロローグにエンコーディング情報が含まれている場合、このエンコーディングが選択され、通知 "The encoding is specified in XML file" が表示され、エンコーディングコンボボックスは無効になります:
Webサービスでは、XMLコンテンツタイプが選択され、プロローグにエンコーディング情報が含まれている場合、適用ボタンが押されると、エンコーディングが設定されます。同じXMLソースを再度選択すると、エンコーディングは即座に設定され、「エンコーディングはXMLソースで指定されます」という通知が表示され、エンコーディングのコンボボックスは無効になります。
Preview Pane
このペインには2つのタブがあり、クエリビルダを思いどおりに動かすのに役立ちます。Sources data previewと表示されたタブを使用して、実際のデータがどのように見えるかを確認できます。まるでデータがテキストファイルで提示されたかのように、すべての詳細が表示されます。カラムはなく、XMLまたはJSONのコードが何行もあるだけです。このタブを使って、後でルート要素として指定する必要があるものを確認することができます。
Raw configurationタブには、CData Virtuality Studio が自動的に検出したデータ構造がツリー表示で表示されます。これは、どの(定期的な)要素を持ちたいかを決めるのに役立ちます。このペインの右側では、メイン要素を選択した後、データがロードされたときにどの要素が行を生成するかを確認できます:
Output Columns Dialogue
最初のダイアログの後、出力カラムをそれぞれのデータ型とともに指定する別のダイアログが表示されます:
選択したタイプの要素の構造を表示するペインがあり(左上)、出力に表示したい属性やサブ要素を簡単に定義することができます。列ペイン (右上) で出力列のデータ型を変更でき、プレビューペイン (下) で結果のテーブルのデータプレビューが表示されます。
Using the Query Builder to Import XML Data (Same Works with JSON)
Getting the Raw Data (Source Pane)
最初のステップは、ソースから生データを取得することです。簡略化のため、このガイドではXMLコンテンツを配信するWebサービスデータソースに基づいており、ファイルデータソースは省略しています。Webサービスからデータを取得したい場合は、まずCommunicating with Web Servicesのセクションを読んでください。サンプルケースでは、URL経由でアクセスできる非常にシンプルなREST APIを持っています。
APIは気象データを生成し、XMLコンテンツを取得するためにURL https://academy.datavirtuality.com/wp-content/uploads/2022/06/forecast.xmlを使用します。ブラウザのアドレス行に文字列をコピーしてANDキーを押すだけで、URLを簡単にテストできます。XMLデータが表示されます。
ファイル・データの場合は有効なファイル・データ・ソースが必要であり、Webサービス・データの場合はWebサービス・データ・ソースが必要であることを覚えておいてください。generic_wsデータ・ソースはエイリアスを除いて完全に空にすることができます。
先に説明したように、開いているSQLエディタ・タブから、下矢印のアイコンをクリックし、Open XML/JSON Query Builderをメニューから選択して、クエリ・ビルダーを起動します。このガイドでは、generic_wsというダミーのデータソースを作成し、これを使用してデータを要求します:
ソースペインで Web serviceというタブを選択し、以下の情報を入力します:
- Data sources: generic_wsドロップダウンメニューから。
- エンドポイントhttps://academy.datavirtuality.com/wp-content/uploads/2022/06/forecast.xml
- リクエスト内容:ドロップダウンメニューから
application/XML
- 応答フォーマット:ドロップダウンメニューから
XML
- エンコード:
UTF-8
JSONデータを生成するエンドポイントがあれば、以下の設定を変更します:
- リクエスト内容:ドロップダウンメニューから
application/JSON
- 応答フォーマット:ドロップダウンメニューから
JSON
Please note that no matter how you get the desired data, you always have to specify an encoding; the most frequently used ones are UTF-8 and windows-1252.
すべてが正しく設定された後、適用をクリックすると、バックグラウンドでデータが読み込まれます。
Selecting the Main Element (Preview Pane)
次のステップでは、行の基礎となる要素ノードのタイプを選択します。システムは、選択したタイプの繰り返し要素ごとに構造全体をチェックします。これらは自動的に行にマッピングされます。確信が持てない場合は、プレビューペインで「Sources data preview」タブを選択し、どの要素に興味があるかを確認します。すでに知っている場合は、この部分をスキップすることができます。下記はプレビューの一部です。
次に、必要な主要要素を選択します。下のスクリーンショットは、検出されたXMLデータの構造を示しており、データの中核が何であるかを明確にするためにツリーが折りたたまれています。確かに、予報がある日ごとに1行ずつ取得したいものです。これを行うには、timeのサブエレメントの一つをダブルクリックするのが最も簡単な方法です:
Selecting Output Columns
正しい要素が選択されていることを確認した後、Nextをクリックし、目的の出力列を選択できるダイアログに進みます。 prototype ペインに表示されている、選択した XML 要素の構造をブラウズします。すべてのサブエレメントとその値、すべての属性が表示されます。項目をダブルクリックすると、その項目が出力列に追加され、列ペインがそれに応じて変更されます。各選択(または列の1つを削除した場合は削除)の後、ダイアログの下部にあるプレビューペインが変更されます。time要素とtemperatureサブ要素からday属性を手動で追加した後のサンプルです。idColumn
は自動的に生成されますので、使用する必要はありません。出力列ペインの上にあるボタンで、出力列の並び替え、追加、削除ができます:
Adjusting the Output Columns
CData Virtuality Studio は要素名や属性名に従って自動的にカラム名を付けるため、 id と id _1という2つのカラムがありますが、これはあまり有益ではありません。列ペインでその名前のセルをクリックし、その名前が表すものに名前を変更できます: id および city_id 。カラムペインに変更があるたびに、プレビューペインが更新されます。
また、Type列と出力列を指定する行のセルをクリックすることで、列のデータ型を変更することができます。
Be very careful when selecting the data types. If a single data record cannot be cast to the type that was set, the whole import will fail. The most reliable option is STRING
.
列の名前を変更し、データ型を変更すると、ダイアログは終了し、以下のようになります:
すべて問題ないので、OK をクリックして、XML インポート用のコードを生成することを確認します。CData Virtuality Studio は以下のコードを表示します:
SELECT
"xmlTable.idColumn"
,
"xmlTable.dt"
,
"xmlTable.dt_text"
,
"xmlTable.temp"
,
"xmlTable.temp_min"
,
"xmlTable.temp_max"
,
"xmlTable.pressure"
,
"xmlTable.humidity"
,
"xmlTable.id"
,
"xmlTable.text"
,
"xmlTable.descr"
,
"xmlTable.all"
,
"xmlTable.speed"
,
"xmlTable.deg"
,
"xmlTable.id_city"
,
"xmlTable.city_name"
,
"xmlTable.city_canonical_name"
,
"xmlTable.region"
,
"xmlTable.lat"
,
"xmlTable.lon"
FROM
"generic_ws"
.invokeHTTP(
endpoint =>
'https://academy.datavirtuality.com/wp-content/uploads/2022/06/forecast.xml'
,
action
=>
'GET'
,
requestContentType =>
'application/xml'
) w,
XMLTABLE(
'/root/dict/data/item'
PASSING XMLPARSE(DOCUMENT to_chars(w.result,
'UTF-8'
) WELLFORMED)
COLUMNS
"idColumn"
FOR
ORDINALITY,
"dt"
INTEGER
PATH
'dt'
,
"dt_text"
STRING PATH
'dt_text'
,
"temp"
DOUBLE
PATH
'main/temp'
,
"temp_min"
DOUBLE
PATH
'main/temp_min'
,
"temp_max"
DOUBLE
PATH
'main/temp_max'
,
"pressure"
DOUBLE
PATH
'main/pressure'
,
"humidity"
DOUBLE
PATH
'main/humidity'
,
"id"
INTEGER
PATH
'weather/item/id'
,
"text"
STRING PATH
'weather/item/text'
,
"descr"
STRING PATH
'weather/item/descr'
,
"all"
STRING PATH
'clouds/all'
,
"speed"
DOUBLE
PATH
'wind/speed'
,
"deg"
DOUBLE
PATH
'wind/deg'
,
"id_city"
INTEGER
PATH
'../../city/id'
,
"city_name"
STRING PATH
'../../city/city_name'
,
"city_canonical_name"
STRING PATH
'../../city/city_canonical_name'
,
"region"
STRING PATH
'../../city/region'
,
"lat"
DOUBLE
PATH
'../../city/coord/lat'
,
"lon"
DOUBLE
PATH
'../../city/coord/lon'
)
"xmlTable"
SELECT
句から不要な列を省略したり、組み込み関数を適用したりできるようになりました。あるいは、この声明はすぐに使うこともできます: