MENU

データレイク/データウェアハウスからレイクハウスへ ~watsonx.dataの紹介とお手軽ハンズオン

Text=細野 友基 日本IBM

 

昨今、データの種類は構造化・半構造化データだけでなく、ドキュメント、画像、音声、動画など多岐にわたっている。また、活用においても生成系AIに代表されるように、進化を続けている。

このようなデータ種類の多様化・データ量の増加・データ活用の進化に伴い、長らくデータレイク(以下、DL)・データウェアハウス(以下、DWH)の2層アーキテクチャに頼ってきたデータ基盤も、徐々に課題を抱えるようになってきた。

これら解決のため、レイクハウス(以下、LH)アーキテクチャが提唱されている。watsonx.dataはLHアーキテクチャを採用しており、現代のデータ基盤が抱える課題を解決できるソリューションとなっている。その一端を今回、ハンズオンも含めてご紹介する。

LH/watsonx.dataとは

LHアーキテクチャとは、一言で表すとDWHのもつデータの信頼性や性能といったメリットをDLにもたらした次世代アーキテクチャである。従来の2層データアーキテクチャでは不可欠であった、DLからDWHにデータをロード・変換するためのETL処理を削減できる。また、スキーマの適用と展開をDL上でサポートし、タイムトラベル機能もサポートするなど、従来のDLの欠点を補填している。さらに、DWH層を排除することで、DLに入ってくるリアルタイムデータと本来バッチ処理後にDWHに格納されるデータを即時的にマージできるため、アナリストやデータサイエンティストは常に最新のデータを分析に活用できる。

watsonx.dataとは、IBMが提供する、次世代LHアーキテクチャを搭載したデータ基盤である。後述する各種技術によって、すべてのデータをDWHに格納する必要がなくなり、DWHとデータレイク間のデータ移動やそれにかかるコスト、時間、資源を削減できる。またワークロードに応じてクエリエンジンを切替ることにより、ベンダーロックインされることなく、肥大化するDWHコストの最適化を図ることができるようになっている。将来的にはIBM Watson Knowledge Catalog(WKC)との統合も予定されており、データガバナンスも本データ基盤上で実施できる予定である。具体的には、WKCの有するビジネス用語割り当て機能により、カラムがもつ意味を逐一調査する必要がなくなるため、検索の工数が削減できる。また、WKCで設定した個人情報のマスキングルールをwatsonx.data上でも適用することで、セキュアなデータ活用を1つのプラットフォーム上で実施できるようになる。WKCに関する詳細な機能については、IBMの製品ドキュメントやWeb上にさまざまな解説記事などがあるため、そちらを参照していただきたい。

watsonx.dataに利用されている主な技術と特徴

watsonx.dataで利用されている技術はすべてオープンソース技術である。あらゆるところで広く使われており、製品固有の技術に縛られることがないため、ベンダーロックインがない。

利用できるクエリエンジンはいくつか存在するが、代表的なものはPrestoとSparkになっている。Prestoは次世代のオープンソースSQLクエリエンジンで、アドホックなクエリ実行やさまざまなデータソースに対するクエリ実行を得意としている。Sparkは巨大なデータに対して高速に分散処理を行うオープンソースのフレームワークである。扱うデータが大量である場合や、データの高速処理が必要な場合に有効である。このようにwatsonx.dataでは、クエリの使い分けが可能であり、最適なワークロードで処理を実行できる基盤という特徴がある。

また、テーブルフォーマットにはIcebergを採用している。オープンなテーブルフォーマットのため、Presto、Sparkといったwatsonx.data内でサポートしているクエリエンジンからのアクセスが可能である。また、サポートしているファイルフォーマットもParquet、ORC、Avro、CSVなどデータ基盤で主に利用される形式はすべてカバーしている。そのほか、Icebergはオブジェクトストレージ上のトランザクションをサポートしている。スキーマ変更の追従やタイムトラベル機能も有しているため、従来のDL上のデータよりも格段に扱いやすさが向上している。

最後に、watsonx.dataにはカタログと呼ばれるメタストア層が存在する。これは複数の目的別クエリエンジンがさまざまなデータソースに対してクエリを実行し、LH内でデータを共有するための共有メタストアを表す。カタログはオブジェクトストレージや、watsonx.dataに繋がれているデータベースに格納される。

watsonx.dataを使ってみる

ではwatsonx.dataをどう使っていくのか、実際の画面を通じて見ていきたいと思う。紙面の都合上、一部の重要な機能に絞って紹介させていただければ幸甚である。また、前提として本ハンズオンで利用するS3互換のオブジェクトストレージはすでにwatsonx.dataと連携済みであり、クエリエンジンとも紐付けたところからスタートする。

①DB・オブジェクトストレージの登録

watsonx.dataにログインしたらまず、インフラストラクチャー・マネージャー画面に遷移する。ここでは、登録ずみのオブジェクトストレージやクエリエンジン、カタログが見えていることがわかる(図表1)。

図表1
図表1

ここで、図表2右端「コンポーネントの追加」から新しいオブジェクトストレージを追加したい場合は「バケットの追加」を、データベースを追加したい場合は「データベースの追加」をクリックする。

図表2
図表2

ここでは、バケットを追加すると想定してバケット登録画面に遷移する(図表3)。

図表3
図表3

バケット名やバケットのエンドポイント、アクセスキー等を入力するほか、カタログを定義する。カタログ・タイプでは執筆時点でApache Icebergのほか、Apache Hive、Apache Hudiが選択できる。右下の追加ボタンを押下すると、図表1のインフラストラクチャ・マネージャー画面に戻る。その後、作成されたカタログとクエリエンジンを紐づければ、watsonx.data内部でデータが扱えるようになる(この手順は誌面の都合上、省略させていただく)。

②スキーマ・テーブル作成

次にデータ・マネージャー画面に移り、先ほど登録したデータソース先のデータに対して、watsonx.data内でスキーマ・テーブルを作成し、データをクエリできるようにしていく。まず、インフラストラクチャ・マネージャー画面からデータ・マネージャー画面に遷移する(図表4)。

図表4
図表4

データ・マネージャー画面では、あらかじめ作成していた「iceberg_data」カタログが見えている(図表5)。

図表5
図表5

ここにスキーマやテーブルを順次作成するため、左に見えるバー右側「作成」から「スキーマの作成」を選択する(図表6)。

図表6
図表6

遷移先のスキーマ作成画面でスキーマ名を入力する。Path欄は自動入力されるため、作成ボタンを押下すると、データ・マネージャー画面に戻る。すると、作成したスキーマが表示されていることがわかる(図表7)。

図表7
図表7

ここでは、「my_schema」という名前でスキーマを作成した(図表8)。

図表8
図表8

スキーマを作成した後、当該スキーマ配下にテーブルを作成する。今回はローカルファイルにあるデータを使用するため、作成したスキーマの右側にあるドットから「ファイルから表を作成」を選択する。遷移先画面でファイルのアップロードが行えるため、アップロードしたいローカルファイルを選択して「次へ」を選択する(図表9)。

図表9
図表9

ここでは具体例としてオープンデータである「cars」の CSVファイルをローカルから読み込んでいる。遷移先の画面でテーブル名を入力し、「次へ」を押下する(図表10)。

図表10
図表10

すると、次画面で表名やテーブル形式、DDLプレビューといったテーブルに関するサマリが表示されるため、確認して問題がなければ「作成」ボタンを押下する(図表11)。

図表11
図表11

最後に、データ・マネージャー画面に戻るため、そこでテーブルが作成されたかどうかチェックを行う(図表12)。

図表12
図表12

③クエリの実行 

最後に、先ほど作成したテーブルデータへのクエリを行ってみる。
まずデータ・マネージャー画面からクエリワークスペースへ移動する(図表13)。

図表13
図表13

クエリワークスペースで、実際に以下のSQLを打ってみた結果を表示する。SQLは以下。

  SELECT
  *
  FROM
  ”iceberg_data”.”my_schema”.”cars”
  LIMIT
  10;

図表14の通り、SQLクエリを通じて結果が返却されることがわかり、データがwatsonx.data上で扱えるようになった。

図表14
図表14

      *

以上が、watsonx.dataのお手軽ハンズオンを通じた紹介である。まだまだここでは触れられない機能やTips、今後リリース予定の新機能など、こちらの記事をエントリーポイントとして深淵を覗いていただければ幸甚である。

著者
細野 友基

日本アイ・ビー・エム株式会社
テクノロジー事業本部
Client Engineering 本部
Data Engineer

Web系企業にてソフトウェアエンジニア・データエンジニアとして、アプリ・インフラ開発からクラウドDWHやBIの構築・運用に従事した後、現職。現在はプリセールスのデータエンジニアとして、さまざまな業界のユーザーへPoC/PoTの実施を中心に活動している。

[i Magazine・IS magazine]

*本記事は筆者個人の見解であり、IBMおよびキンドリルジャパン、キンドリルジャパン ・テクノロジーサービスの立場、戦略、意見を代表するものではありません。


当サイトでは、TEC-Jメンバーによる技術解説・コラムなどを掲載しています。

TEC-J技術記事https://www.imagazine.co.jp/tec-j/

[i Magazine・IS magazine]

[i Magazine・IS magazine]

新着