目次
1.はじめに
2.今回の実施内容
3.作業実施するうえでの予備知識
4.今回作成する派生ビューのイメージ
5.サンプルデータのダウンロード
6.データソース登録
7.基本ビュー作成
8.派生ビュー作成
9.クエリ実行
10.最後に
参考URL
- Denodo-USER MANUALS データソースと基本ビューの作成
- Denodo-USER MANUALS 派生ビューの作成
- Denodo-USER MANUALS 派生ビューの定義
- Denodo-USER MANUALS データの定義と処理を行うための言語: VQL
1 はじめに
本記事は、データ仮想化製品Denodoについて紹介する連載記事になっております。
データ仮想化技術やDenodoの概要については、第1章 データ仮想化とDenodo概要をご参照ください。
また、データ仮想化環境の構築については、第2章 データ仮想化環境の構築をご参照ください。
本記事の内容は、データ仮想化環境(Denodo Express)の構築が完了していないと実施できません。
構築が完了してから、以下の手順に進んでください。
前回と前々回の記事
2 今回の実施内容
今回はDenodo内に派生ビューというものを作成していきます。
その派生ビューに対してVQL(SQLライクに記述できるDenodo独自の言語、詳細はリンクを参照)を実行し、データ抽出を行います。
派生ビューを作成するにあたって、まず基本ビューを作成します。
この基本ビューをもとに派生ビューを作成します。
さらにこの派生ビューにカラムを付け加え、オリジナルのビューを作成していきます。
今回の最終的な目標としては、基本ビュー作成後に派生ビュー内のデータを抽出できれば完了になります。
3 作業実施するうえでの予備知識
Denodo内に派生ビューを作成するにあたって、まずデータソースと基本ビューを作成する必要があります。
このためデータソース・基本ビュー・派生ビューの概要から説明します。
データソース
Denodoがデータベースやファイル(XMLやJSON、Excelなど)からデータを取得するために設定する必要があるものです。
Denodo内部では、データソースが1つのデータリポジトリとして表現されます。
[参考URL]
基本ビュー
データベースやファイルのデータ(カラムやフィールド内のデータ)がそのままビューの形式で表現されたものです。
後述する派生ビューは、この基本ビューを組み合わせて作成されます。
[参考URL]
派生ビュー
基本ビューや他の派生ビューを組み合わせて作成されるビューです。
ビューに出力させるカラムをオリジナルで設定できます。
例えば、様々な購買情報のデータが格納されている基本ビューから、客層と購入された商品だけのカラムを表示させるビューを派生ビューとして作成することができます。
[参考URL]
4 今回作成する派生ビューのイメージ
今回作成する派生ビューのイメージは、以下の画像にある通りです。
オープンデータを取り込み東京と札幌の気象データを基本ビューとして作成し、その基本ビューを結合した派生ビューを作成します。
派生ビューには「東京と札幌の最高気温の差」というカスタムカラムを追加し、表示できるようにします。
このカスタムカラムをフィルタして「2地点の気象データから最高気温の差を特定の値でフィルタしてデータを抽出」することを目標とします。
5 サンプルデータのダウンロード
サンプルデータとして、今回は気象庁が公開している気象データを使用します。
以下のサイトから、過去の気象データをダウンロードすることができます。
気象庁 | 過去の気象データ・ダウンロード
以下のダウンロード手順に沿って、東京と札幌の気象データをダウンロードしてください。
5-1 東京の気象データをダウンロード
気象庁のサイトにアクセスします。
アクセスすると過去の気象データがダウンロードできるサイトが表示されます。
東京都内の地点が複数表示されますが、この中から東京を選択します。
次にダウンロードするデータの項目を設定します。
①項目を選ぶボタンを選択する
②データの種類:日別値を選択する
③項目:気温の日最高気温と日最低気温に✓を入れる
データの項目選択後、取得するデータの期間を設定します。
①期間を選ぶボタンを選択する
②期間:連続した期間で表示するを選択し、1か月間の期間(2023年2月1日~2023年3月1日)を指定する
最後に表示オプションを設定します。
①画面上部の表示オプションを選ぶボタンを選択する
②利用上注意が必要なデータの扱い:値を表示(格納)しないを選択
③観測環境などの変化の前後で、値が不均質となったデータの扱い:観測環境などの変化前の値を表示(格納)しないを選択
④ダウンロードCSVファイルのデータ仕様:すべて数値で格納(現象あり・なし情報、品質情報は数値で格納)と日付リテラルで格納を選択
⑤その他:両方とも選択しない
⑥CSVファイルをダウンロードを選択し、東京の気象データをダウンロードする
data.csvファイルがダウンロードされますが、このままではどこの地点の気象データか
わかりにくいため、data_東京.csvにリネームしてください。
5-2 札幌の気象データをダウンロード
次に札幌の気象データをダウンロードします。
①画面右側の「選択された地点」に記載されている東京を削除する
②画像上部の地点を選ぶを選択する
地点選択の画面に戻り、画像上部にある他の都道府県を選ぶを選択します。
石狩地方の地点から札幌を選択し、札幌のデータをダウンロードします
①石狩地区の地点から札幌を選択する
②画面右側の「選択された地点」に札幌が追加されたことを確認する
③画面右上のCSVファイルをダウンロードを選択する
※項目や期間、表示オプションに関しては、先ほど東京のデータをダウンロードした際の設定が残っているため、
このままCSVファイルをダウンロードを選択する
CSVファイルをダウンロードを選択後data.csvファイルがダウンロードされます。
先ほどと同様にこのままではどこの地点の気象データか
わかりにくいため、data_札幌.csvにリネームしてください。
5-3 ダウンロードした気象データの体裁を調整
上記手順で東京と札幌の気象データCSVファイルがダウンロードできたかと思います。
東京の気象データ
札幌の気象データ
このダウンロードしたCSVファイルの体裁を、以下の画像のように修正してください。
具体的には「1~3行目と5行目の削除」と「B4セルとC4セルに、東京と札幌の地点を追記」してください。
体裁修正後、気象データは以下のようにリネームして保存してください
- 東京:data_東京_体裁修正済み.csv
- 札幌:data_札幌_体裁修正済み.csv
体裁修正後:東京の気象データ
体裁修正後:札幌の気象データ
6 データソース登録
気象データのダウンロードが完了したところで、さっそくDenodoに触れていきます。
まず最初に行うことが、データソース登録になります。
先ほど体裁を修正した気象データを任意の場所に配置します。
今回はわかりやすくCドライブ直下にフォルダー「Denodo_SampleData」を作成し、その中に気象データ2つを格納します。
Cドライブ直下に気象データの格納が完了したら、次にDenodoのVirtual DataPort ServerとVirtual DataPort Administration Toolを起動します。
Virtual DataPort Serverの起動方法については、第2章第5節の記事に記載されておりますので、そちらをご参照ください。
Virtual DataPort Serverが起動すると、以下のように通知が出力されます。
Virtual DataPort Server起動後、次はVirtual DataPort Administration Toolを起動します。
Virtual DataPort Administration Toolの右側にある「LAUNCH」を選択します。
Virtual DataPort Administration Toolが起動すると以下のような画面が出てきます。
デフォルトで作成されるadminアカウントの情報を入力後、「Connect」を選択しログインします。
「Connect」を選択後、Virtual DataPort Serverに接続されます。
下記の画面がVirtual DataPort Serverのホーム画面になります。
Virtual DataPort Serverに接続できたら、次はVirtual DataPort Server内に仮想DBを作成します。
まず、左上にあるメニューバーから「Administration」>「Database Management」を選択します。
選択すると以下のような画面が表示され、現在登録されている仮想DBの一覧が表示されます。
左上にある「New」を選択し、今回の作業用に新しく仮想DBを作成します。
仮想DBの設定値は、以下のように設定します。
- Name:[任意の名前を記入します](ここではkisyo_dataとします)
- Description:空欄
- Identifiers charset:Unicode - Case sensitive
- Automatic cost based optimization:Default (Off)
- Automatic simplification of queries:Default (On)
- Use summaries for queries acceleration:Default (On)
- Authentication type:Internal user
- ODBC authentication:✓を入れない
設定値の記入が完了したら、右下の「Ok」を選択してください。
「Ok」を選択すると「kisyo_data」という名前の仮想DBが作成されます。
仮想DB作成画面
「Ok」ボタン押下後
次にこの仮想DBの中に、データソースを登録していきます。
以下の手順で東京と札幌の気象データのデータソースを登録します。
まず、東京の気象データのデータソースから登録していきます。
左側のDatabasesの中にあるkisyo_dataを選択します。
この状態で、左上のメニューバーから「File」>「New...」>「Data source」>「Delimited file」を選択します。
選択すると以下のような画面が表示されます。
様々な記入欄や選択欄がありますが、以下の項目のみ記入及び選択します。(記載以外の項目はデフォルトのままにします。)
①Name:[任意の名前を記入します](ここではkisyo_data_tokyoとします)
②Data route:Local
③Column delimiter:,(カンマ)
④Header:✓を入れる
⑤Data routeの右側にあるConfigureを選択
Configureを選択するとEdit Local Connectionという画面がポップアップされます。
この画面で以下のように項目を設定します。
①File path:C:/Denodo_SampleData/data_東京_体裁修正済み.csv(任意の場所に保存した東京の気象データのファイルパス)
②File name pattern:空欄
③Autodetect encoding Charset encoding:✓を入れる
④Input Filter:Noneを選択する
上記4つを記入し終えたら、右下のTest connectionを選択します。
Test connectionを選択すると、Virtual DataPort Serverがローカルにある東京の気象データに接続できるかテストを実施します。
以下の画面が表示されれば、接続テストはクリアです。
以下の画面が出ない場合は接続ができておりませんので、前画面のFile path等を再度ご確認ください
接続テストが完了したらEdit Local Connection画面の右下にある「Ok」を選択します。
その後、データソースの画面に戻り、左上の「Save」を選択し保存します。
保存すると仮想DB内にkisyo_data_tokyoというデータソースが登録されます。
これで東京の気象データのデータソース登録は完了です。
残り札幌の気象データのデータソース登録も実施します。
手順は上記と同様です。
File pathのみ異なりますので、ご注意ください。
私の環境下では、以下のように設定しました。
- File path:C:\Denodo_SampleData\data_札幌_体裁修正済み.csv(任意の場所に保存した札幌の気象データのファイルパス)
東京と札幌のデータソース登録が完了すると、以下のようにkisyo_dataデータベース内に2つのデータソースが登録されます。
これでデータソース登録は完了です。
7 基本ビュー作成
データソースが作成できたところで、次は基本ビューを作成していきます。
まずは東京の気象データの基本ビューから作成します。
①kisyo_dataデータベースから、kisyo_data_tokyoデータソースを選択
②右上にあるCreate base viewを選択
Create base viewを選択すると基本ビューの登録画面が出てきます。
基本ビューの名前やカラムの型を以下のように設定します。
①View name:kisyo_data_tokyo_base_viewを入力する
②Field Typeを変更する
・"年月日"のField Type:text
・"東京の最高気温(℃)"のField Type:float
・"東京の最低気温(℃)"のField Type:float
③左上のフロッピーディスクのマークを選択し保存する
上記と同じ手順で、札幌の気象データの基本ビューも作成していきます。
作成するとkisyo_dataデータベースの中に、基本ビューが2つ作成されます。
これで基本ビュー作成が完了です。
8 派生ビュー作成
ここから本題の派生ビューを作成していきます。
①Databasesの中にあるkisyo_dataデータベースを選択する
②左上のメニューバーから「File」を選択する
③「New...」>「Join」を選択する
Joinを選択すると、以下のような派生ビュー設定画面が表示されます。
Associated viewsの下にある枠に、東京と札幌の基本ビューをドラッグアンドドロップします。
東京と札幌の基本ビュー両方にあるカラム「年月日」を紐づける設定をします。
札幌の基本ビューの年月日をドラッグし、東京の基本ビューにある年月日にドロップします。
ドラッグアンドドロップすると、以下のように矢印で結ばれます。
次に重複しているカラムを削除します。
①上のタブから「Output」を選択する
②札幌の基本ビュー(kisyo_data_sapporo_base_view)にある年月日に✓を入れる
③右下のRemove selectedを選択しカラムを削除する
次に、以下に記載されている順番にカラムを入れ替えます。
- kisyo_data_tokyo_base_viewの"年月日"
- kisyo_data_tokyo_base_viewの"東京の最高気温(℃)"
- kisyo_data_tokyo_base_viewの"東京の最低気温(℃)"
- kisyo_data_sapporo_base_viewの"札幌の最高気温(℃)"
- kisyo_data_sapporo_base_viewの"札幌の最低気温(℃)"
kisyo_data_sapporo_base_viewの"札幌の最高気温(℃)"と"札幌の最低気温(℃)"の右にある□に✓を入れ、右端にある▲▼で順番を入れ替えます。
以下は、カラムを入れ替えた後の図になります。
カラム入れ替え後、派生ビューにカラムを追加します。
右下のNew fieldを選択します。
選択すると、New fieldという設定画面がポップアップされます。
この画面で、以下の項目を入力してください。
- Field name:東京と札幌の最高気温差(℃)
- Field expressin:SUBTRACT(kisyo_data_tokyo_base_view."東京の最高気温(℃)", kisyo_data_sapporo_base_view."札幌の最高気温(℃)")
入力が完了したら、右下の「Ok」を選択してください。
ここまで設定したら、最後に左上のフロッピーディスクのマークを選択し、派生ビューを保存します。
これで派生ビュー作成が完了です。
9 クエリ実行
手順8で作成した派生ビューにクエリ実行し、派生ビューの中身が表示されるか確認します。
①左側のDatabasesの中から、kisyo_data.kisyo_data_sapporo_base_view_i_kisyo_data.kisyo_data_toyko_base_viewという派生ビューを選択する
②派生ビュー選択後、右上のExecution panelを選択する
③画面下部に表示されるExecuteというタブの右端にあるExecuteを選択する
(Executeタブ枠内のCurrent sentenceに記述されている「select *」というビューの中身を表示するクエリが実行される)
Executeを選択するとVQLクエリ(select *)が実行され、クエリ結果が表示されます。
また、フィルター検索も実施してみます。
右上のExecution panelを選択し、Executeタブを出します。
その後、Quick Queryを選択します。
Conditionsの横にある+を選択し、以下の画像に記載されているように条件を追加します。
条件を入力後、右上のExecuteを選択すると東京と札幌の最高気温差が12度以上のデータだけ表示されるようになります。
東京と札幌の最高気温差が12度以上のデータを表示することができたら、今回の最終目標であった「2地点の気象データから最高気温の差を特定の値でフィルタしてデータを抽出」が完了となります。
10 最後に
ここまで長い手順でしたが、お疲れでした。
今回作業したように、Denodoではまず基本ビューを作成し、そこからオリジナルの派生ビューを作成し、クエリ実行することでデータ活用・抽出ができます。
これはDenodoの基本中の基本であるため、今回の作業が完了できれば基本は押さえられたことになります。
次回の記事からは少し応用的な内容になっていきます。
次回の内容は「キャッシュ設定」を予定しています。
次回の記事もご期待ください。