Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg...
Search
[email protected]
June 19, 2025
Technology
0
22
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
2025年6月18日に開催されたIceberg Japan Metup# 2でエンジニアの前多が発表した資料です
[email protected]
June 19, 2025
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
製造業の会計システムをDDDで開発した話
caddi_eng
3
1.6k
【CADDI VIETNAM】Company Deck for Engineers
caddi_eng
0
880
CADDi Company Deck_Global.pdf
caddi_eng
1
370
[ English ] Company Overview for Engineers
caddi_eng
0
5.2k
エンジニア向け会社紹介資料
caddi_eng
16
480k
キャディ株式会社 会社紹介・採用説明資料
caddi_eng
12
1M
機械学習チームのモノレポ移行
caddi_eng
0
640
BtoB SaaS を支える 認証認可基盤の設計
caddi_eng
0
1.4k
2023.01_CADDi Thailand Company Overview
caddi_eng
0
15k
Other Decks in Technology
See All in Technology
生成AIをテストプロセスに活用し"よう"としている話 #jasstnano
makky_tyuyan
0
140
RubyOnRailsOnDevin+α / DevinMeetupJapan#2
ginkouno
0
190
vLLM meetup Tokyo
jpishikawa
1
200
Kotlinで学ぶ 代数的データ型
ysknsid25
5
1.1k
API の仕様から紐解く「MCP 入門」 ~MCP の「コンテキスト」って何だ?~
cdataj
0
140
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
3
520
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
110
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
0
140
AI技術トレンド勉強会 #1MCPの基礎と実務での応用
nisei_k
1
130
エンジニア採用から始まる技術広報と組織づくり/202506lt
nishiuma
8
1.6k
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.4k
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
300
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
KATA
mclloyd
29
14k
Designing for Performance
lara
609
69k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
How GitHub (no longer) Works
holman
314
140k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Optimizing for Happiness
mojombo
379
70k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Typedesign – Prime Four
hannesfritz
42
2.7k
Automating Front-end Workflow
addyosmani
1370
200k
Transcript
© CADDi Inc. © CADDi Inc. キャディでの Apache Iceberg, Trino採⽤事例
- Apache Iceberg and Trino Usecese in CADDi - Kentaro Maeda Iceberg Japan Meetup #2 2025/06/18 1
© CADDi Inc. 2 About Me Kentaro Maeda • X:
@kencharos • Software Engineer at CADDi ◦ Java, Go, k8s, Istio, envoy • お酒と⽝
© CADDi Inc. 3 About CADDi エンジニア向け紹介資料 - Speaker Deckより
© CADDi Inc. 4 Theme 私たちは、2024年の秋からApache Iceberg, Trinoを中核としたデータ活⽤サー ビスを開発しています Apache
Iceberg, Trinoをスモールスタートで運⽤している事例についてお伝えし ます
© CADDi Inc. 5 Contents • 製造業で扱うデータの複雑さ • Apache Iceberg
と Trinoの採⽤ • 開発中の困りごととその解決策 • 今後の展望
© CADDi Inc. 6 製造業で扱うデータの複雑さ
© CADDi Inc. 製造業で扱うデータは多種多様 会社ごとに扱うデータの種類、フォーマット、サイズなどは異なる。 7 分類 具体例 構造化データ •
実績データ(見積実績、受注実績、発注実績、製造実績、検査実績、出荷実績、 請求実績、在庫実績など • マスタデータ(顧客情報、製品、仕入れ先、工程、設備情報、検査器具、チャージ など) 半構造化データ • CAD 非構造化データ • 図面 • 写真 • 文書(仕様書、マニュアル、不具合報告書、議事録など )
© CADDi Inc. データ活⽤のためには解析と関連付けが必要 • データを集めるだけで、データを検索できないのでは活⽤はできない • 検索‧分析できる状態までデータを解析して蓄積する必要がある • 蓄積したデータ同⼠を関連付けることで、企業活動を促進する
データの分析と関連付けのために、データを蓄積する基盤が必要であると考えた 8
© CADDi Inc. 9 Apache Iceberg と Trinoの採⽤
© CADDi Inc. 何を作るのか? • まずは構造化データの登録と関連付けに着⽬ • 顧客が任意のデータをアップロードし、データを登録する • 図⾯登録データとの関連付けを設定し、図⾯と⼀緒に関連データとして表⽰する
10 図⾯登録 データ 登録済み データ 図⾯ 任意の データ 関連付け データ
© CADDi Inc. Iceberg, Trinoを選んだ理由 • タイミングが良かった ◦ 開発を始めた頃にIcebergと周辺技術が成熟してきていた •
従来のデータ基盤技術と⽐較して、運⽤しやすい構成 ◦ オブジェクトストレージ+クエリエンジン、HDFSのようなストレージの運⽤が不要 • ある程度のクセはあるが、CRUDができるデータフォーマット • スケールしやすい構成 ◦ ⼤量データでなくても低コストストレージと、クエリエンジンのスケールによって コストを抑えやすい • 現在はTrinoのみだが、⽤途に応じてクエリエンジンを使い分けることができる 11
© CADDi Inc. その他の技術選定の候補 • いくつかの候補を挙げたが、仮説検証の速さ、構成変更のしやすさ、コストやデータサイズが 増えた場合の影響などを重視して決定した 12 製品 メリット
デメリット RDBMS 扱いやすさ データサイズ拡大時のコストとパフォーマンス BigQuery マネージドサービス 大規模でも扱える コスト見積もりが困難 DuckDB 導入が容易 サーバーアプリケーション向きではない Apache Spark 大規模データの参照・編集に すぐれる 今回はデータの参照中心の要件であるため、運用が 楽なTrinoを採用(将来の採用はあり得る ) 有償製品 豊富な機能、サポート 仮説検証時点では調達リードタイム等を考慮して見 送り(将来の採用はあり得る )
© CADDi Inc. アプリケーションの構成 GKE上に主要なアプリケーションを全て構築 主要な開発⾔語はJava, フレームワークはQuarkus 13
© CADDi Inc. 14 開発中の困りごととその解決策
© CADDi Inc. Iceberg Catalog選定問題 • 開発当時(2024年秋), Icebergの Catalogについてはhiveが基本でREST Catalog
はこれから標準 になっていくという雰囲気 • 当初はGoogle Cloud Dataproc Metastore を使う想定だったが、以下の理由によって諦めた ◦ Icebergのみを使うのにhive metastore を使うのは学習コストが⾼い ◦ 認証認可をやるには Kerberosの運⽤が必要になりそう • 将来移⾏するリスクを飲む前提で、tabulario/iceberg-rest (現在は iceberg-rest-fixture)と RDBMSを採⽤ • REST Catalogは現時点でも⾊々な選択肢があるので、今後の動向を⾒守っている ◦ Google Cloudの BigQuery Metastoreにも期待 15
© CADDi Inc. ⼤量データ投⼊が遅い問題 • 性能テストで1000万件以上のデータ投⼊のために、Trinoからデータ投⼊をしていたら2⽇か かっても終わらなかった • IcebergのJava API
を使って、Trinoを介さず直接データを書き込むようにした ◦ おおよそ 1000万件を 15分で処理できるように ◦ アップロードファイル単位のコミット制御も可能になった ◦ 詳しくは -> https://caddi.tech/2025/03/31/114754 • リリース開始後に数百万件の実データ投⼊の要件が発⽣したので、アプリケーションの登録 処理にも流⽤して効率をあげた ◦ 今後はPyIcebergや Sparkなども試していきたい 16
© CADDi Inc. 17 今後の展望
© CADDi Inc. 今後の展望 製造業AIデータプラットフォームCADDiを⽀えるデータ基盤として機能と品質を充実させ ていく • セキュリティ、認証認可の強化 • データカタログなどデータ基盤としての機能の拡充
• データパイプラインや⾃動メンテナンスなどの⾮機能の充実 18
© CADDi Inc. まとめ • スモールスタートからでもIceberg, Trinoは⾃分たちで制御可能なデータ基盤技術 ◦ 簡単ではないが、ものすごく複雑でもない ◦
これまでのデータ基盤技術の集⼤成だと感じる • エコシステムがこれからも充実していきそうなIcebergにこれからも注⽬していきた い 19
© CADDi Inc. © CADDi Inc. 20 終わり