ここでは、CData Virtuality で異なるデータベーステーブルから取得したデー タを組み合わせてビューを作成する方法を説明します。
What is a View
CData Virtuality では、ビューは複数のデータソース(例:MySQL のテーブルとPostgreSQL のテーブルなど)のクエリ結果を組み合わせて作成される仮想テーブルです。ビューは、多様なシステムにまたがるデータを統一して分析する方法を提供します。これがその仕組みです:
作成されたビューはCData Virtuality のスキーマスペースに格納され、さらなるクエリや分析のためにアクセスできるようになります。
Creating a View
このガイドでは、CData Virtuality Web Interface / SaaS とStudio の両方でビューを作成する手順を順を追って説明します。
We use sample data to illustrate the process. For instructions on connecting to the sample data, please see the corresponding guide.
Creating a View in the CData Virtuality Web UI
Code Editor を開き、ツールバー内のView Builder ボタンをクリックします:
View Builder ウィンドウで、左側のメニューにあるOpen a table selection dialog ボタンをクリックします:
Table Selection 画面が表示されます。MySQL からCustomers、PostgreSQL からOrders テーブルを選択して(どちらもサンプルデータベースで利用可能です)、Add ボタンをクリックします:
View Builder 画面に戻ります。Customers(MySQL)と Orders(PostgreSQL)の2つのテーブルが正常に追加されていることを確認します:
Customers テーブル内の
customeridフィールドをドラッグしてOrders テーブル内のcustomeridフィールドの場所でドロップします。Join Setting 画面が表示されるので、以下のデフォルト設定を維持したまま、Save ボタンをクリックします:
Join Type:Inner Join
"Customers" table column:customerid:integer, Cast
Operator:=
"Orders" table column:customerid:integer, Cast
Customers とOrders テーブル間にリレーションが正常に作成されたことを確認します。Customers とOrders 内の取得したい項目(フィールド)を選択し、左メニューのCreate View ボタンをクリックします:
スキーマを選択し、ビューの名前(例:
CustomersOrder)を入力して、Create View ボタンをクリックします:
作成されたビューからデータを取得するには、左メニューのBrowser タブ -> Virtual Schemas -> Views をクリックします。ビュー名(例:
CustomersOrder)の右にある縦三点リーダーをクリックし、コンテキストメニューからGenerate Statement を選択してデータを取得します:
以下のSQL がCode Editor に生成されます:
SELECT "customerid", "companyname", "address", "country", "city", "sector", "industry", "city_id", "orderid", "orderdate", "cost", "subtotal", "taxes", "total", "uuid_group", "segment" FROM "views.CustomersOrder";;Run Script ボタンをクリックします。Result エリアには、MySQL のCustomers テーブルとPostgreSQL のOrder テーブルのデータを結合した結果が表示されます:
メニュー内のData Lineage ボタンをクリックします:
Data Lineage 画面が表示されます。この画面は、クエリ(SELECT)がデータを取得したデータソースをグラフィカルに表示します:
Data Lineage 画面を閉じてメニューのQuery Plan ボタンをクリックします:
Query Plan 画面が表示されます。この画面は、クエリの実行プランをグラフィカルに表示します。 この例では、クエリはデータソースの各テーブルから取得されたデータが、
MERGE JOINを使用してINNER JOINoperation 中に結合されていることを示しています:
Query Plan 画面を閉じます。左側のVirtual Schema views セクションで、ビュー名の右側にある縦三点リーダーをクリックし、コンテキストメニューからEdit を選択してビューを変更します:
新しいCode Editor タブが開き、以下のSQL が生成されます。必要に応じて修正して実行し、ビュー定義を変更できます:
CREATE OR REPLACE VIEW "views.CustomersOrder" AS SELECT "Customers.customerid", "Customers.companyname", "Customers.address", "Customers.country", "Customers.city", "Customers.sector"," Customers.industry", "Customers.city_id", "Orders.orderid", "Orders.orderdate", "Orders.cost", "Orders.subtotal", "Orders.taxes", "Orders .total", "Orders.uuid_group", "Orders.segment". FROM "mysql.Customers" INNER JOIN "postgres.Orders" ON "Customers.customerid" = "Orders.customerid" ;;Creating a View in the CData Virtuality Studio
CData Virtuality Studio を起動します。左側のData Explorer からVirtual Schemas -> Views ->Tables / Views を開きます。CData Virtuality Web UI を使用してビューを作成している場合は、それらのビューが表示されます。ビューが表示されない場合は、右上のRefresh the views / Refresh the datasources ボタンをクリックしてリストを更新します:
上部ツールバーメニューのOpen View builder アイコンをクリックします:
Schema を選択し、ビュー名を入力します(例:
CustomersOrder_builder)。ビュー名は一意でなければならないことに注意してください:
+ ボタンをクリックしてCreate virtual views 画面を開きます。MySQL からCustomers、PostgreSQL からOrders テーブルを選択して(どちらもサンプルデータベースとして提供されています)、Add ボタンをクリックします:
View Builder 画面に戻ります。Customers(MySQL)とOrders(PostgreSQL)の2つのテーブルが正常に追加されていることを確認します::
Customers テーブル内のcustomerid フィールドをドラッグしてOrders 内のcustomerid フィールドの場所でドロップします:
Join Setting 画面が表示されるので、以下のデフォルト設定を維持したまま、Save ボタンをクリックします:
Join Type:Inner Join
"Customers" table column:customerid:integer
Operator:=
"Orders" table column:customerid:integer
Customers とOrders テーブル間にリレーションが正常に作成されたことを確認します。Customers とOrders 内の取得したい項目(フィールド)を選択し、左メニューのCreate View ボタンをクリックします:
ビューが正常に作成された旨のダイアログが表示されたらOK ボタンをクリックします:
Views ウィンドウの右上隅にあるRefresh current views ボタンをクリックします。新しく作成されたビューがリストに表示されていることを確認します:
作成したビューからデータを取得するには、作成したビューの名前(例:
CustomersOrder_builder)を右クリックし、コンテキストメニューからGenerate Statement を選択します:
以下のSQL がCode Editor に生成されます:
SELECT "customerid", "companyname", "address", "country", "city", "sector", "industry", "city_id", "iso3_country_code", "orderid", "Orders_ customerid", "orderdate", "cost", "subtotal", "taxes", "total", "uuid_group", "segment" FROM "views.CustomersOrder_builder";;; "order_name", "country", "city", "sector", "industry", "city_id", "iso3_country_code", "orderid", "Orders_Order_builder緑色の再生ボタンをクリックしてスクリプトを実行します。Result エリアには、MySQL のCustomers テーブルとPostgreSQL のOrder テーブルのデータを結合した結果が表示されます:
メニュー内のData Lineage ボタンをクリックします。Data Lineage 画面が表示されます。この画面は、クエリ(SELECT)がデータを取得したデータソースをグラフィカルに表示します:
Data Lineage 画面を閉じてメニューのShow Query Plan ボタンをクリックします。Query Plan 画面が表示されます。この画面は、クエリの実行プランをグラフィカルに表示します。 この例では、クエリはデータソースの各テーブルから取得されたデータが、
MERGE JOINを使用してINNER JOINoperation 中に結合されていることを示しています。Views list タブに戻り、作成したビューを選択します。ビューの定義がDefinition フィールドに表示されます:
CREATE OR REPLACE VIEW "views.CustomersOrder_builder" AS SELECT "Customers.customerid", "customerid". "Customers.companyname", "Customers. "Customers.address", "Customers.address". "Customers.country", "Customers". "Customers.city", "Customers". "Customers.sector", "Customers.sector". "Customers.industry", "Customers". "Customers.city_id", "Customers. "Customers.iso3_country_code", "iso3_country_code". "Orders.orderid", "orderid". "Orders.customerid" AS "Orders_customerid", "Orders. "Orders.orderdate", "orderdate". "Orders.cost", "Orders.cost". "Orders.subtotal", "Orders.subtotal". "Orders.taxes", "Orders.taxes". "Orders.total", "Orders.total". "Orders.uuid_group", "Orders. "Orders.segment".FROM "mysql.Customers" INNER JOIN "postgres.Orders" ON "Customers.customerid" = "Orders.customerid"See Also
Create View ビューの作成方法の詳細についてはこちらをご覧ください。






























