Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HeatWave のLakehouse 機能を触ってみよう! 自動化してみよう! #HeatW...

HeatWave のLakehouse 機能を触ってみよう! 自動化してみよう! #HeatWavejp

「祝1周年 はじめてでもわかる!MySQL HeatWave 全体解剖 LT大会!!」
「HeatWave のLakehouse 機能を触ってみよう! 自動化してみよう! 」のセッション資料です。

https://heatwavejp.connpass.com/event/312177/

Kazuya Sugimoto

April 11, 2024
Tweet

More Decks by Kazuya Sugimoto

Other Decks in Technology

Transcript

  1. © 2024 CData Software Japan, LLC | www.cdata.com/jp HeatWave のLakehouse

    機能を触ってみよう! 自動化してみよう! HeatWavejp Meetup #07 2024/04/11 CData Software Japan Kazuya Sugimoto -Lead Engineer
  2. © 2024 CData Software Japan, LLC | www.cdata.com/jp About Speaker

    CData Software Japan の Lead Engineer これまで300種類以上のAPIを見たり触ったりしている API中毒な人。 BBQが趣味なので、お肉に誘われてやってきました! Twitter:@sugimomoto Facebook:sugimomoto Blog:https://www.cdatablog.jp/
  3. © 2024 CData Software Japan, LLC | www.cdata.com/jp HeatWave のLakehouse

    を触ってみよう! https://www.oracle.com/jp/news/announcement/oracle-announces-general-availability- mysql-heatwave-lakehouse-2023-07-20/
  4. © 2024 CData Software Japan, LLC | www.cdata.com/jp そもそもLakehouse とはなんぞや?

    Datawarehouse Datalake Lakehouse データ ウェアハウスとは、POS トランザクション、マーケティン グ オートメーション、顧客管理 などの複数のソースからの構造化 データおよび半構造化データの分 析とレポート作成に使用される企 業システム https://cloud.google.com/learn/what-is-a-data-warehouse?hl=ja https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AC%E3%82%A4%E3%82%AF https://www.hpe.com/jp/ja/what-is/data-lakehouse.html データレイクは構造化/非構造化 データやバイナリ等のファイル含 めたデータを一元的に格納する データリポジトリ。構造化データ (列と行)や、半構造化データ (CSV、ログ、JSON)、非構造 化データ(Eメール、ドキュメン ト、PDF)、バイナリデータ(画 像、音声、映像)などを含む。 データレイクの柔軟性と拡張性の メリットにデータウェアハウスの データ構造とデータ管理機能を組 み合わせた、ハイブリッドデータ 管理アーキテクチャー
  5. © 2024 CData Software Japan, LLC | www.cdata.com/jp そもそもLakehouse とはなんぞや?

    分散ファイルシステム 分散クエリ スキーマ・メタデータ 計算リソースとストレージの分離に加えて、テーブルの基盤(スキーマ・メタデータ)を実装 し、効率的かつ構造的なデータ処理およびACIDなどの機能をサポートするアーキテクチャ (※私なりの表現。以前からあるApache Sparkなどはこれに近いアプローチですよね)
  6. © 2024 CData Software Japan, LLC | www.cdata.com/jp Lakehouse のメリット

    ・データの主体はデータレイクに存在するため、柔軟性・拡張性が維持し やすい。データコストを削減。 ・データレイクからデータウェアハウスへのデータローディング・ETL/ELT 処 理の最小化。 ・データプール間での移動の必要をなくし、一元管理・データガバナンスを 確保しやすく。 ・複数のシステムにまたがったアクセスが不要にし、BIツールなどからもアク セスしやすく。 Lakehouse
  7. © 2024 CData Software Japan, LLC | www.cdata.com/jp HeatWave のLakehouse

    機能 とは? ・業界で初めて、データベース内データへのクエリと同等に高速なオブジェ クト・ストレージ内データに対するクエリ実行を実現 ・CSV、Parquet、他のデータベースからエクスポート・ファイルなど、オブ ジェクト・ストアのさまざまなファイル形式をサポートし、これらのファイルを MySQLデータベースのトランザクション・データと組み合わせることも可能 ・MySQLデータベースにデータをコピーすることなく、オブジェクト・ストア内 のファイルに対して直接クエリを実行 https://www.oracle.com/jp/news/announcement/oracle- announces-general-availability-mysql-heatwave-lakehouse- 2023-07-20/
  8. © 2024 CData Software Japan, LLC | www.cdata.com/jp ①HeatWave Lakehouse

    構成時の注意点 ・MySQL.HeatWave.VM.Standardおよび HeatWave.512GB シェイプでのみサポート ・高可用性構成では利用不可 ・ポイントインタイムリカバリ不可 ・リードレプリカの使用不可
  9. © 2024 CData Software Japan, LLC | www.cdata.com/jp ②MySQL HeatWave

    レイクハウスを有効に 前述の設定を満たしていないと 有効化できないので要注意
  10. © 2024 CData Software Japan, LLC | www.cdata.com/jp ③オブジェクトストレージの準備 OCI上のMySQL

    HeatWaveは、Oracle Cloud Infrastructure に保存されている外部 データにアクセス可能。AWS 上の MySQL HeatWave は、AWS に保存されている外部 データにアクセス可能。 (※試しにOCI上のHeatWave でAmazon S3 のファイルにアクセスしようとしたら失敗) ファイルのアクセス権は事前認証されたURLを利用 する方法(認証Keyなどを含む)ないし、リソース プリンシパルを利用してDB自体がオブジェクトスト レージへのアクセスを許容するように構成する必要 がある https://dev.mysql.com/doc/heatwave/en/mys-hw-lakehouse-access-object- storage.html
  11. © 2024 CData Software Japan, LLC | www.cdata.com/jp ④データローディング 2種類のロード方法が選択できる

    # Auto Parallel Load 自動的にファイル構成を読み取って、Create Table 文を作りローディングしてくれる便利なアプ ローチ # 手動でのデータローディング Create Table 文を使って、手動でスキーマを構 成してローディング
  12. © 2024 CData Software Japan, LLC | www.cdata.com/jp ⑤Auto Parallel

    Load SET @db_list = '["test"]'; SET @ext_tables = ' [ { "db_name": "test", "tables": [ { "table_name": "sample", "dialect": { "format": "csv", "field_delimiter": ",", "record_delimiter": "¥¥n", "skip_rows": 1 }, "file": [ { "par": "https://objectstorage.ap-tokyo- 1.oraclecloud.com/p/XXXX/n/nrcg3afka3eo/b/bucket-cdatasync/o/Sample.csv" } ] } ] } ] '; SET @options = JSON_OBJECT('external_tables', CAST(@ext_tables AS JSON)); CALL sys.heatwave_load(@db_list, @options); 対象データのフォーマット、デリミタ、ファイルパスなどを指 定するだけでOK sys.heatwave_load をコールすることで、対象データ をスキャン、カラムの型を推定し、Create Table文の発 行、データのローディングをしてくれる
  13. © 2024 CData Software Japan, LLC | www.cdata.com/jp ⑤手動でのデータローディング CREATE

    TABLE sample ( id int NOT NULL, name VARCHAR(45) NULL, PRIMARY KEY (id)) ENGINE=lakehouse ENGINE_ATTRIBUTE='{ "file": [ { "par": "https://objectstorage.ap-tokyo- 1.oraclecloud.com/p/XXXX/n/nrcg3afka3eo/b/bucket-cdatasync/o/Sample.csv" } ], "dialect": { "format": "csv", "is_strict_mode": false, "field_delimiter": ",", "record_delimiter": "¥¥n" } } ‘; ALTER TABLE sample SECONDARY_ENGINE = RAPID; ALTER TABLE sample SECONDARY_LOAD; Create Table のパラメータとしてファイルパスやデータ フォーマットを指定
  14. © 2024 CData Software Japan, LLC | www.cdata.com/jp データロード? ファイルはどこにある?

    https://dev.mysql.com/doc/heatwave/en/mys-hw- lakehouse-overview-data-storage.html >ソース データは Object Storage から読み取 られ、メモリに最適化された HeatWave 形式に 変換され、Object Storage の HeatWave 永続ストレージ レイヤーに保存されてから、 HeatWave クラスター メモリにロードされます。 このデータは、サービスのエンドユーザーによって 直接アクセスされることはありません。このメモリ最 適化された内部バージョンのデータは、 HeatWave クラスターで Lakehouse オプション が有効になっている限り保持されます。 ※そのためデータのリフレッシュをするには、再度 Drop・Createし直す必要がある模様
  15. © 2023 CData Software Inc. | www.cdata.com SaaSを中心とする400(API Profile含 む)を超えるデータソース

    主要なデータレイク・データベース・ データウェアハウス CData Sync 400を超えるデータソースのデータをノーコードでデータベースにレプリケーション シンプルな設定 ETL/ELT 方式 高度な差分更新 柔軟なジョブ管理 ノーコード、3ステップで データ統合基盤を構築 標準SQLによるデータ抽出時 での変換、もしくは、データ ウェアハウスへの取り込み後 の変換どちらにも対応 CDC(ChangeDataCapture)な どの高度な差分更新メカニズ ムを搭載 処理負荷を軽減し、日々の ジョブ実行時間の短縮を実現 オブジェクト(テーブルや項目)、処理方式 (洗い替えor差分など)や条件(一部のレコー ドのみ)を指定したジョブ作成が可能 作成したジョブはスケジュール、および、Web APIやコマンドラインで実行可能
  16. © 2024 CData Software Japan, LLC | www.cdata.com/jp まとめ・所感 #

    触ってみて感じたHeatWave Lakehouse のポイント ・MySQL のエクスペリエンスを保ったまま、Lakehouse の良いところを 利用できる! ・一度ロードしてしまえば、データストレージを意識せずに利用可能。ただ し、データのリフレッシュは要注意。 # 今後のHeatWave Lakehouse の気になるところ ・HeatWave 永続ストレージレイヤーに保存されずに利用できるように なると嬉しいな ・Delta LakeやIceberg などのLakeHouse 向けオープンフォーマット に対応してくれると嬉しいな