HeatWavejp_Meetup_13_HeatWave Lakehouse で 膨大になるcsvデータを 必要な分だけロードしてデータ集計してみた![米内山 浩介氏 (ジニアス・ソノリティ)]

>100 Views

May 07, 25

スライド概要

【講演内容】
HeatWave Lakehouseで発言になるcsvデータを必要な分だけロードしてデータまとめてみた!

 - ジニアス・ソノリティの業務内容と背景
 ‐ HeatWave Lakehouseでその悩みを解決する
 ‐ HeatWave Lakehouseでの実装例
 ‐ HeatWave Lakehouseここが便利

【発表者】
ジニアス・ソノリティ株式会社
米内山浩介氏

【イベント情報】
HeatWavejp Meetup #13
https://heatwavejp.connpass.com/even/349599/

profile-image

HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

HeatWave Lakehouse で 膨大になるcsvデータを 必要な分だけロードしてデータ集計してみた! ジニアス・ソノリティ株式会社 米内山浩介

2.

業務内容 ゲームソフトの開発および運営

3.

New 電波人間のRPG FREE! あなたの周りの電波人間を、探して、仲間にして、冒険しよう! Genius Sonority Inc. Android iOS Nintendo Switch版もあ ります!

4.

昔々のゲームとは違い、今は色々な情報が運営の手の中にある ・ゲームのプレイログ ・セーブデータ ゲームプレイ状況を分析したくなる、が ストレージの扱いで悩む (リリース初期のデータを分析したい、とずっと後になって言われるとつらい)

5.

HeatWave Lakehouseでその悩みを解消する オブジェクトストレージ アプリケーションサーバー path/of/data/2025/04/17/data.csv アプリケーションサーバー データ管理・集計サーバー path/of/data/2025/04/16/data.csv path/of/data/2025/04/15/data.csv path/of/data/2025/04/14/data.csv : : アプリケーションサーバー : 一旦集計用のサーバーにデータを集約 分析に必要な情報を日ごとに csv化してオブジェクトストレージにアップロード レンジパーティション的にデータ配置する

6.
[beta]
HeatWave Lakehouseでの実装例 (1)
※2025年4月分の月間データをロードする例(テーブル、カラム名は仮です)
CREATE TABLE IF NOT EXISTS `dailyinfo` (
`date`

DATETIME NOT NULL,

`user_id` INT UNSIGNED NOT NULL,
`data01` INT UNSIGNED,
`data02` INT UNSIGNED,
`data03` INT UNSIGNED,
PRIMARY KEY(`date`,`user_id`)
) ENGINE=Lakehouse SECONDARY_ENGINE=RAPID ENGINE_ATTRIBUTE='{
"file":[{
"bucket":"bucket-name",
"namespace":"project-namespace",
"region":"project-region",
"prefix":"path/of/data/2025/04/"
}],
"dialect":{ "format":"csv","is_strict_mode":false,"field_delimiter":",", "record_delimiter":"\\n" }
}';

7.
[beta]
HeatWave Lakehouseでの実装例 (2)
※2025年4月1日から3日までの3日分データをロードする例

ALTER TABLE `dailyinfo` ENGINE_ATTRIBUTE='{
"file":[
{"bucket":"bucket-name","namespace":"project-namespace","region":"project-region",
"prefix":"path/to/data/2025/04/01"},
{"bucket":"bucket-name","namespace":"project-namespace","region":"project-region",
"prefix":"path/to/data/2025/04/02"},
{"bucket":"bucket-name","namespace":"project-namespace","region":"project-region",
"prefix":"path/to/data/2025/04/03"}
],
"dialect":{"format":"csv","is_strict_mode":false,"field_delimiter":",","record_delimiter":"\\n"}
}';

8.

HeatWave Lakehouseここが便利 ・prefixのディレクトリ形式で欲しいレンジを指定可能 ・ALTER TABLE xxx ENGINE_ATTRIBUTE=...で読み込みたい日付を後から 切り替えも可能 ・オフィシャルで用意してある機能である ※使わない場合オブジェクトストレージからダウンロードしてインポートする処理を自前で作る必要がある ・なによりもデータをオブジェクトストレージに置いておける ※MDS側ストレージのひっ迫でお悩みの方におすすめです

9.

ご清聴ありがとうございました New 電波人間のRPG FREE! よろしくお願いします! Android iOS Nintendo Switch版もあ ります!