SlideShare a Scribd company logo
1 of 30
© 2023 NTT DATA Group Corporation 1
Databricksチューニングあれこれ
~JEDAI 2023 X‘mas/忘年会 Meetup!~
株式会社NTTデータグループ 技術革新統括本部 技術開発本部 北波 紘子
データブリックス・ジャパン株式会社 Sr. Specialist Solutions Architect 板垣 輝広
© 2023 NTT DATA Group Corporation 2
まずは自己紹介
© 2023 NTT DATA Group Corporation 3
きたなみではなく、きたばです
<アジャイル開発プロジェクト立ち上げ>
• 製薬会社向けデータ活用プロジェクト
• アジャイル開発性能評価ツール開発
• 金融業向け基盤開発プロジェクト
2023
Databricks Solutions Architect Champion
を取得しました
北波 紘子
Hiroko Kitaba
株式会社NTTデータグループ 技術開発本部
IOWN推進室 高度OSSサポート担当 主任
<略歴>
金融・製薬・エネルギーなど様々な業界で、
OSS使用プロジェクトの開発・性能検証支援やアジャイル開発のコンサルティングに従事
代表例:
<ビッグデータ関連プロジェクト支援>
• 流通業向け性能検証
• 電力業界向けシステムの基盤性能検証
• Bigtop資材開発
• 自動車業界向け基盤開発
今年9月のDATA+AIで
パネルディスカッション
しました
最近はまっているもの
株式会社マクニカ
太田さん
Databricks
徳元さん
ジャズ
タップダンス・着付け
どれも初心者。教えてください!
© 2023 NTT DATA Group Corporation 4
<競艇AIモデル作成プロジェクト>
• 分類、回帰、ランキング学習の組み合わせ
で2023/8月-11月の収支において回収率
110%を達成
2023
最近、記憶力が低下していると感じており
メモを取るように心がけています
板垣 輝広
Mitsuhiro Itagaki
Databricks Japan
シニア・スペシャリスト・ソリューションアーキテクト
<略歴>
元プロボクサー
Databricksではデータエンジニアリング、データウェアハウスの領域のスペシャリスト・
ソリューションアーキテクトとして様々な案件において技術支援を実施
<Databricks麻雀選手権>
• 2023/10月の麻雀選手権ではトップを獲得
最近はまっているもの
競艇・麻雀
麻雀はけっこう打てます。
一局どうですか?
得意技はワンツーからの
右フックです。
代表例:
ニックネームはがっきーです
© 2023 NTT DATA Group Corporation 5
わたし普段、Sparkの性能チューニング
ばかりやっている
たのしい けどせつない
きっと君(おだやかな日々)は来ない
ひとりきりのクリスマス・チューニング
チューニングの
予定はあるやん
やったね
© 2023 NTT DATA Group Corporation 6
この繰り返し
性能改善時のフローの概要
実行(性能測定)
処理時間確認
ソースコードの
設計の確認/修正
リソース使用
状況確認
クラスタ設定
確認
リソース
設定値修正
Spark設定値
修正
Spark UI
(Spark History Server)
バージョン管理
システム
Ganglia
issueを確認す
る
ソースコードを
読む
※EMRの画面
バグ・設計の確認
クエリの
実行状況確認
© 2023 NTT DATA Group Corporation 7
この繰り返し
性能改善時のフローの概要
実行(性能測定)
処理時間確認
ソースコードの
設計の確認/修正
リソース使用
状況確認
クラスタ設定
確認
リソース
設定値修正
Spark設定値
修正
Spark UI
(Spark History Server)
バージョン管理
システム
Ganglia
issueを確認す
る
ソースコードを
読む
※EMRの画面
バグ・設計の確認
クエリの実行
状況
確認
© 2023 NTT DATA Group Corporation 8
目が回っている場合じゃない!
Databricksには
性能チューニングの新機能というものが
あったな!
© 2023 NTT DATA Group Corporation 9
新機能であれこれ解決して
たのしいクリスマスを過ごせないかな
© 2023 NTT DATA Group Corporation 10
● Databricksの新機能と従来手法での性能チューニング方法での
4つのクエリの走行時間を比較してどちらが有用か確認したい (そして楽しいクリスマスを)
★Databricksの新機能 リキッドクラスタリング/Predictive IO
● 4つのクエリ
● 対象テーブル
● 概要:3テーブル(TPC-Hベンチマークのテーブル)
● サイズ:約3.8TB(CSVテキスト換算) 一番大きなテーブルは約300億件(CSVテキスト換算:約3.7TB)
ということで、Databricksチューニングあれこれ
クエリ概要 選定観点
1 フルスキャン 素早く取得できるか。コンパクションとPredictive IOが有用そう
2 3つのカラムでの絞り込み これはやらないとね
従来手法でのチューニング(パーティション+Zorder)との全力
での競り合いを見たい
3 パーティションキー指定なし
2つのカラムでの絞り込み
リキッドクラスタリングのかっこいいとこみてみたい♪
4 パーティションキー指定のみ
1つのカラムでの絞り込み
新機能と従来のパーティション設計手法どちらが有用か…
© 2023 NTT DATA Group Corporation 11
リキッドクラスタリング Databricksランタイム13.2以降
• クラスタリングキーを柔軟に定義してくれる機能 パーティション設計要らずかも
Predictive IO Databricksランタイム11.2以降
• ディープラーニングでクエリの検索条件の確率を計算して最適な読み込みをしたり、
不要な列や行のデコードを行ってくれる機能
Databricksの新機能(ざっくり説明)
この場には詳しい方がたくさん
周りの皆さんにも聞いてください
© 2023 NTT DATA Group Corporation 12
比較対象となる実行パターン
比較実行パターンは
実行パターン 概要
1 チューニングなし チューニングを全くしないケース。
以下2つのチューニングの効果を測るための基準値として計測。
2 従来のチューニング
(パーティション+Z-Order)
従来TB以上の大規模テーブルでは一般的に実施されているパー
ティション+Z-Orderによる鉄板チューニング。
明示的なデータパーティションをユーザ側で指定できるのが強み
3 新機能のチューニング
(リキッドクラスタリング)
リキッドクラスタリングでパーティション設計なしで、コンパク
ション+データクラスタリングを実施する。
※ランタイム13.x以上でサポート
© 2023 NTT DATA Group Corporation
​
​
SELECT
l_orderkey,
sum(l_extendedprice * (1 - l_discount)) as revenue,
o_orderdate,
o_shippriority,
count(1)
FROM
customer,
orders,
lineitem <-- 約300億件(CSVテキスト換算:約3.7TB)
WHERE
c_custkey = o_custkey
AND l_orderkey = o_orderkey
AND l_comment like '%final%'
GROUP BY
l_orderkey,
o_orderdate,
o_shippriority
ORDER BY
revenue desc,
o_orderdate
LIMIT 20;
Where句にチューニングで設定した
フィルタ条件がないためフルスキャン。。
クエリ1:フルスキャン
1 フルスキャン 素早く取得できるか。
コンパクションとPredictive IOが有用そう
2 3つのカラムでの絞り込み これはやらないとね
従来手法でのチューニング(パーティション+Zorder)との全力で
の競り合いを見たい
3 パーティションキー指定なし
2つのカラムでの絞り込み
リキッドクラスタリングのかっこいいとこみてみたい♪
4 パーティションキー指定のみ
1つのカラムでの絞り込み
新機能と従来のパーティション設計手法どちらが有用か…
従来のチューニングパターン
:
L_SHIPDATE:パーティションキー
L_LINENUMBER:Z-Orderキー1
L_SHIPMODE:Z-Orderキー2
リキッドクラスタリング:
L_SHIPDATE:クラスタリングキー1
L_LINENUMBER:クラスタリングキー2
L_SHIPMODE:クラスタリングキー3
© 2023 NTT DATA Group Corporation
SELECT
l_orderkey,
sum(l_extendedprice * (1 - l_discount)) as revenue,
o_orderdate,
o_shippriority,
count(1)
FROM
customer,
orders,
Lineitem <-- 約300億件(CSVテキスト換算:約3.7TB)
WHERE
c_mktsegment = 'BUILDING'
AND L_SHIPDATE between '1997-01-01' and '1997-12-31'
AND L_LINENUMBER = 1
AND L_SHIPMODE = 'AIR'
AND c_custkey = o_custkey
AND l_orderkey = o_orderkey
GROUP BY
l_orderkey,
o_orderdate,
o_shippriority
ORDER BY
revenue desc,
o_orderdate
LIMIT 20;
両ケースとも絶好調の状態!!
クエリ2:3つのカラムで絞り込み
従来のチューニングパターン
:
L_SHIPDATE:パーティションキー
L_LINENUMBER:Z-Orderキー1
L_SHIPMODE:Z-Orderキー2
リキッドクラスタリング:
L_SHIPDATE:クラスタリングキー1
L_LINENUMBER:クラスタリングキー2
L_SHIPMODE:クラスタリングキー3
1 フルスキャン 素早く取得できるか。
コンパクションとPredictive IOが有用そう
2 3つのカラムでの絞り込み これはやらないとね
従来手法でのチューニング(パーティション+
Zorder)との全力での競り合いを見たい
3 パーティションキー指定なし
2つのカラムでの絞り込み
リキッドクラスタリングのかっこいいとこみてみたい♪
4 パーティションキー指定のみ
1つのカラムでの絞り込み
新機能と従来のパーティション設計手法どちらが有用か…
© 2023 NTT DATA Group Corporation
​
​
SELECT
l_orderkey,
sum(l_extendedprice * (1 - l_discount)) as revenue,
o_orderdate,
o_shippriority,
count(1)
FROM
customer,
orders,
Lineitem <-- 約300億件(CSVテキスト換算:約3.7TB)
WHERE
c_mktsegment = 'BUILDING'
AND L_LINENUMBER = 1
AND L_SHIPMODE = 'AIR'
AND c_custkey = o_custkey
AND l_orderkey = o_orderkey
GROUP BY
l_orderkey,
o_orderdate,
o_shippriority
ORDER BY
revenue desc,
o_orderdate
LIMIT 20;
パーティションキー指定がないので
実力が発揮できないケース。。
アドホック分析にも強いところ
が見せられる??
クエリ3:2つのカラムで絞り込み
従来のチューニングパターン
:
L_SHIPDATE:パーティションキー
L_LINENUMBER:Z-Orderキー1
L_SHIPMODE:Z-Orderキー2
リキッドクラスタリング:
L_SHIPDATE:クラスタリングキー1
L_LINENUMBER:クラスタリングキー2
L_SHIPMODE:クラスタリングキー3
1 フルスキャン 素早く取得できるか。
コンパクションとPredictive IOが有用そう
2 3つのカラムでの絞り込み これはやらないとね
従来手法でのチューニング(パーティション+Zorder)との全力で
の競り合いを見たい
3 パーティションキー指定なし
2つのカラムでの絞り込み
リキッドクラスタリングのかっこいいとこみてみた
い♪
4 パーティションキー指定のみ
1つのカラムでの絞り込み
新機能と従来のパーティション設計手法どちらが有用か…
© 2023 NTT DATA Group Corporation
SELECT
l_orderkey,
sum(l_extendedprice * (1 - l_discount)) as revenue,
o_orderdate,
o_shippriority,
count(1)
FROM
customer,
orders,
Lineitem <-- 約300億件(CSVテキスト換算:約3.7TB)
WHERE
c_mktsegment = 'BUILDING'
AND L_SHIPDATE between '1997-01-01' and '1997-12-31'
AND c_custkey = o_custkey
AND l_orderkey = o_orderkey
GROUP BY
l_orderkey,
o_orderdate,
o_shippriority
ORDER BY
revenue desc,
o_orderdate
LIMIT 20;
パーティションキーでのみフィルタ
される!
1つのクラスタリングキーでのみ
フィルタされる!
クエリ4:1つのカラムで絞り込み
従来のチューニングパターン
:
L_SHIPDATE:パーティションキー
L_LINENUMBER:Z-Orderキー1
L_SHIPMODE:Z-Orderキー2
リキッドクラスタリング:
L_SHIPDATE:クラスタリングキー1
L_LINENUMBER:クラスタリングキー2
L_SHIPMODE:クラスタリングキー3
1 フルスキャン 素早く取得できるか。
コンパクションとPredictive IOが有用そう
2 3つのカラムでの絞り込み これはやらないとね
従来手法でのチューニング(パーティション+Zorder)との全力で
の競り合いを見たい
3 パーティションキー指定なし
2つのカラムでの絞り込み
リキッドクラスタリングのかっこいいとこみてみたい♪
4 パーティションキー指定のみ
1つのカラムでの絞り込み
新機能と従来のパーティション設計手法どちらが有
用か…
© 2023 NTT DATA Group Corporation
Runtime 14.2での処理結果
※文字数のため以下で省略
青:チューニングなし
橙:既存...Partition+Z-Order
灰:新機能…LiquidClustering
クラスタサイズ:
i3.2xlarge (61GB / 8cores) ✖️12 worker
© 2023 NTT DATA Group Corporation
Runtime 14.2での処理結果
フルスキャン
コンパクションが優秀
新機能と既存の差はあまり見られない
3カラムでの絞り込み
どちらも有効に働いている
新機能と既存の差はあまり見られな
い
2カラムでの絞り込み(パーティショ
ンキー以外)
リキッドクラスタリングが有効に働
いている
1カラム(パーティションキー)での
絞り込み
新機能と既存の差はあまりみられな
いがどちらも有効に働いている
※文字数のため以下で省略
青:チューニングなし
橙:既存...Partition+Z-Order
灰:新機能…LiquidClustering
クラスタサイズ:
i3.2xlarge (61GB / 8cores) ✖️12 worker
© 2023 NTT DATA Group Corporation 19
Runtime 10.4 LTS( Predictive I/Oなし) Runtime 14.2( Predictive I/Oあり)
Predictive I/Oのメトリクス
© 2023 NTT DATA Group Corporation
Runtime 14.2とRuntime 10.4LTSによる処理時間の違い
※10.4LTSなので新機能のチューニング比較はできない
© 2023 NTT DATA Group Corporation
どちらも特殊なソート技術でデータをクラスタリングするため、I/O削減効率は全く同じなのですが、
リキッドクラスタリング
- データ書き込み時(512MBまでのWrite)に自動クラスタリングが実行されるため、クエリパフォーマンス
劣化が起きにくく、明示的なOptimizeコマンドの実行時間が短縮されます!!
- 将来的な機能拡張でリキッドクラスタリングキーの自動選定が可能になります!!!
- テーブル属性として定義され、カタログ情報から参照可能
- レコードレベルの同時更新をサポート
- パーティションテーブルとの併用は不可
- 先頭の32カラムのうち最大4カラムまで
- テーブル属性として定義され、カタログ情報から参照可能
Z-Order
- パーティションテーブルとの併用が可能
- 先頭の32カラムにZ-Orderに定義可能(ただし実際に効果があるのは4カラムまで程度です!)
- テーブル属性として定義されないためカタログ情報には記録されません。
Z-Orderとリキッドクラスタリングの違いは??
これからは
リキッドクラスタリング!
© 2023 NTT DATA Group Corporation
新機能:
プレディクティブ オプティマイゼーション!
デルタ・テーブルを最適化するためのオペレーションを自動的に識別
管理オペレーションを自動化
フェーズ1
OPTIMIZE(物理ファイル最適化)実行
VACUUM(データ物理削除)実行
※UnityCatalog管理テーブルが対象
フェーズ2
ANALYZE(統計情報取得)実行
※UnityCatalog外部テーブルサポート
フェーズ3
リキッド・クラスタリングキー
設定の最適化
ALTER CATALOG [catalog_name] {ENABLE | DISABLE} AUTO MAINTENANCE
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} AUTO MAINTENANCE
1 2 3
プレビュー中 TBD TBD
© 2023 NTT DATA Group Corporation 23
今回は一部チューニングをやったが他にもチューニングポイントはある まだあるのでTo be continued…
いろいろチューニングやりたいこと盛りだくさん
チューニング観点 方法 汎用性 想定ユースケース 結果・効果
データの最適化
(OPTIMIZE)
Z-Orderによりマッピングして並び替える あり 全体的な最適化に向いている 今回実施
コンパクションを実施する あり 全体的な最適化に向いている 今回実施
シャッフルサイズ
の最適化
spark.sql.shuffle.partitions=auto
spark.databricks.adaptive.autoOptimizeSh
uffle.enabled=True
にして、シャッフルサイズを最適化する
あり シャッフルサイズが大きくて
処理に時間がかかっている場
合は有効
今回実施
→今回はシャッフル
サイズは200のまま
であった
パーティションサイズ
の調整
カーディナリティが適切なキーで
repartitionを使用する
なし バッチ処理や特定の処理特化
型
今回実は実施
→古いLTSでも有効
Join方法の調整 Broadcastを指定する なし サイズの小さいマスタなどを
扱う際に使用する
JOIN方法を明示的に指定する なし INNERJOINは効果ありそう
キャッシュヒット率を
上げる
Cashを使用する なし メモリに乗り切るデータサイ
ズの場合
何度もデータを使用する場合
© 2023 NTT DATA Group Corporation 24
• リキッドクラスタリング機能はかなり有用なので
これからパーティショニング設計は要らない...かも
• Databricksの新機能は従来手法と比べ高速かつチューニングコストが削減できる
新しいランタイムにしてぜひ使ってみましょう!
• 現在のコンパクション、バキュームの自動化機能に加え、統計情報の取得、
リキッドクラスタリングキーの自動設定が可能になる予定です!
まとめ
ありがとうDatabricks
今年のクリスマスは
特に予定はないけれどたのしく過ごせそうです
© 2023 NTT DATA Group Corporation
付録
© 2023 NTT DATA Group Corporation
チューニングなし 従来のチューニング
(コンパクション+パーティ
ション+Z-Order)
新機能のチューニング
(コンパクション+リキッド
クラスタリング)
参考:チューニングあり
(コンパクション+Z-Order)
クエリ1 129.0 41.16 41.25 42.52
クエリ2 58.85 2.60 1.57 1.56
クエリ3 58.49 16.64 2.64 2.86
クエリ4 55.98 7.05 7.64 7.58
実行結果の詳細 Runtime 14.2
© 2023 NTT DATA Group Corporation
実行結果の詳細 Runtime 10.4LTS
チューニングなし チューニング1
(コンパクション+パーティ
ション+Z-Order)
チューニング2
(コンパクション+リキッド
クラスタリング)
参考:チューニングあり
(コンパクション+Z-Order)
クエリ1 196.8 85.8 N/A 87.6
クエリ2 93.0 6.44 N/A 1.94
クエリ3 88.2 48.52 N/A 4.57
クエリ4 89.4 14.06 N/A 15.95
© 2023 NTT DATA Group Corporation
取り扱っていたデータサイズの詳細
Lineittem表のCSVテキ
ストサイズ:3.72TB
チューニングなし 従来のチューニング
(コンパクション+パーテ
ィション+Z-Order)
新機能のチューニング
(コンパクション+リキッ
ドクラスタリング)
Lineitem表物理サイズ
(Deltaフォーマット
)
965.6GiB 237.5GiB 351.8GiB
物理ファイル数 8807 5634 6367
予想より圧縮が効いているのは増幅データのためかも
© 2023 NTT DATA Group Corporation 30
Pysparkが好きなのでテーブルデータの物理配置の変更をrepartitionでも試してみました。
テーブルデータの物理配置はテーブル/パーティションテーブル再作成 or クラスタリングする際に時間がかかるのが難点。
Where句での絞り込みに使用するカラムを変更してテーブルを再作成したい場合などはこの方法もあるよ。
この方法だとデータスキッピンングに使用するカラムが複数の場合はパーティショニング・クラスタリングほどのI/O削減はできま
せんが、テーブル再作成+Optimizeよりもクイックにファイル物理配置の変更ができるためバッチ処理などでは使用できるかも。
おまけ:こういうチューニング方法もあるよ
でもさ
リキッドクラスタリングの方が楽だね わかる
ソースコード例
LTS 14.2 Repartition
+saveAsTable
Create table as select +Z-
Order
所要時間
22分
14分(CTAS)+50分(Zorder) =
64分
LTS
14.2
チューニング
なし
Repartition
+saveAsTable
Create table as
select+Z-Order
クエリ1 129.0秒 46.42秒 103.8秒
クエリ2 58.9秒 8.39秒 7.21秒
クエリ3 58.5秒 23.21秒 35.57秒
クエリ4 56.0秒 10.68秒 8.84秒
spark.conf.set("spark.sql.adaptive.coalescePartitions.minPartitionNum", "3000")
spark.conf.set("spark.sql.adaptive.coalescePartitions.minPartitionSize","10mb")
from pyspark.sql.functions import col, substring
df = spark.table('main.db_notuning.lineitem')
df = df.repartition(3000,col('L_SHIPDATE'))
df.write.saveAsTable('lineitem_vt')
例:別の検索キー(キーは1つ指定)に要した時間
例:キー変更後、先の4つのクエリに要した時間

More Related Content

What's hot

Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門Satoru Ishikawa
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
Akkaで分散システム入門
Akkaで分散システム入門Akkaで分散システム入門
Akkaで分散システム入門Shingo Omura
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けRecruit Technologies
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxotato
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsYoshiyasu SAEKI
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜Takahiro Inoue
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 

What's hot (20)

Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
ストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Stormストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Storm
 
Metaspace
MetaspaceMetaspace
Metaspace
 
Akkaで分散システム入門
Akkaで分散システム入門Akkaで分散システム入門
Akkaで分散システム入門
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptxDatabricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptx
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 

Similar to Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)

OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)NTT DATA Technology & Innovation
 
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合うDaiyu Hatakeyama
 
OpenStack Day Tokyo 2013 - Morphlabs - Satoshi Konno
OpenStack Day Tokyo 2013 - Morphlabs - Satoshi KonnoOpenStack Day Tokyo 2013 - Morphlabs - Satoshi Konno
OpenStack Day Tokyo 2013 - Morphlabs - Satoshi KonnoSatoshi Konno
 
RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月
RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月
RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月ossanalytics
 
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】WESEEKWESEEK
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
ソースコードは要求にとって地球の裏側なのか
ソースコードは要求にとって地球の裏側なのかソースコードは要求にとって地球の裏側なのか
ソースコードは要求にとって地球の裏側なのかKent Ishizawa
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)NTT DATA Technology & Innovation
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローques_staff
 
物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑むHiroto Honda
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfYoshihiroKitamura4
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu GotoInsight Technology, Inc.
 
Windows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみようWindows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみようYutaro Tamai
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後Shingo Sasaki
 
MLOps Course Slides_JP(配布用).pdf
MLOps Course Slides_JP(配布用).pdfMLOps Course Slides_JP(配布用).pdf
MLOps Course Slides_JP(配布用).pdfYuya Yamamoto
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カットRakuten Group, Inc.
 

Similar to Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料) (20)

OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
 
OpenStack Day Tokyo 2013 - Morphlabs - Satoshi Konno
OpenStack Day Tokyo 2013 - Morphlabs - Satoshi KonnoOpenStack Day Tokyo 2013 - Morphlabs - Satoshi Konno
OpenStack Day Tokyo 2013 - Morphlabs - Satoshi Konno
 
RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月
RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月
RapidMinerのご紹介(ラピッドマイナーの5つの重要ポイント)2013年12月
 
超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!超高速な機械学習を Oracle Database で実現!
超高速な機械学習を Oracle Database で実現!
 
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
ソースコードは要求にとって地球の裏側なのか
ソースコードは要求にとって地球の裏側なのかソースコードは要求にとって地球の裏側なのか
ソースコードは要求にとって地球の裏側なのか
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 
KDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フローKDDI Business ID におけるアジャイル開発と検証フロー
KDDI Business ID におけるアジャイル開発と検証フロー
 
物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む物体検出コンペティションOpen Imagesに挑む
物体検出コンペティションOpen Imagesに挑む
 
Reckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdfReckonerサービス紹介資料.pdf
Reckonerサービス紹介資料.pdf
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
 
Windows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみようWindows 365 Enterprise に触れてみよう
Windows 365 Enterprise に触れてみよう
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
MLOps Course Slides_JP(配布用).pdf
MLOps Course Slides_JP(配布用).pdfMLOps Course Slides_JP(配布用).pdf
MLOps Course Slides_JP(配布用).pdf
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
 

More from NTT DATA Technology & Innovation

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)NTT DATA Technology & Innovation
 
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
 
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)

  • 1. © 2023 NTT DATA Group Corporation 1 Databricksチューニングあれこれ ~JEDAI 2023 X‘mas/忘年会 Meetup!~ 株式会社NTTデータグループ 技術革新統括本部 技術開発本部 北波 紘子 データブリックス・ジャパン株式会社 Sr. Specialist Solutions Architect 板垣 輝広
  • 2. © 2023 NTT DATA Group Corporation 2 まずは自己紹介
  • 3. © 2023 NTT DATA Group Corporation 3 きたなみではなく、きたばです <アジャイル開発プロジェクト立ち上げ> • 製薬会社向けデータ活用プロジェクト • アジャイル開発性能評価ツール開発 • 金融業向け基盤開発プロジェクト 2023 Databricks Solutions Architect Champion を取得しました 北波 紘子 Hiroko Kitaba 株式会社NTTデータグループ 技術開発本部 IOWN推進室 高度OSSサポート担当 主任 <略歴> 金融・製薬・エネルギーなど様々な業界で、 OSS使用プロジェクトの開発・性能検証支援やアジャイル開発のコンサルティングに従事 代表例: <ビッグデータ関連プロジェクト支援> • 流通業向け性能検証 • 電力業界向けシステムの基盤性能検証 • Bigtop資材開発 • 自動車業界向け基盤開発 今年9月のDATA+AIで パネルディスカッション しました 最近はまっているもの 株式会社マクニカ 太田さん Databricks 徳元さん ジャズ タップダンス・着付け どれも初心者。教えてください!
  • 4. © 2023 NTT DATA Group Corporation 4 <競艇AIモデル作成プロジェクト> • 分類、回帰、ランキング学習の組み合わせ で2023/8月-11月の収支において回収率 110%を達成 2023 最近、記憶力が低下していると感じており メモを取るように心がけています 板垣 輝広 Mitsuhiro Itagaki Databricks Japan シニア・スペシャリスト・ソリューションアーキテクト <略歴> 元プロボクサー Databricksではデータエンジニアリング、データウェアハウスの領域のスペシャリスト・ ソリューションアーキテクトとして様々な案件において技術支援を実施 <Databricks麻雀選手権> • 2023/10月の麻雀選手権ではトップを獲得 最近はまっているもの 競艇・麻雀 麻雀はけっこう打てます。 一局どうですか? 得意技はワンツーからの 右フックです。 代表例: ニックネームはがっきーです
  • 5. © 2023 NTT DATA Group Corporation 5 わたし普段、Sparkの性能チューニング ばかりやっている たのしい けどせつない きっと君(おだやかな日々)は来ない ひとりきりのクリスマス・チューニング チューニングの 予定はあるやん やったね
  • 6. © 2023 NTT DATA Group Corporation 6 この繰り返し 性能改善時のフローの概要 実行(性能測定) 処理時間確認 ソースコードの 設計の確認/修正 リソース使用 状況確認 クラスタ設定 確認 リソース 設定値修正 Spark設定値 修正 Spark UI (Spark History Server) バージョン管理 システム Ganglia issueを確認す る ソースコードを 読む ※EMRの画面 バグ・設計の確認 クエリの 実行状況確認
  • 7. © 2023 NTT DATA Group Corporation 7 この繰り返し 性能改善時のフローの概要 実行(性能測定) 処理時間確認 ソースコードの 設計の確認/修正 リソース使用 状況確認 クラスタ設定 確認 リソース 設定値修正 Spark設定値 修正 Spark UI (Spark History Server) バージョン管理 システム Ganglia issueを確認す る ソースコードを 読む ※EMRの画面 バグ・設計の確認 クエリの実行 状況 確認
  • 8. © 2023 NTT DATA Group Corporation 8 目が回っている場合じゃない! Databricksには 性能チューニングの新機能というものが あったな!
  • 9. © 2023 NTT DATA Group Corporation 9 新機能であれこれ解決して たのしいクリスマスを過ごせないかな
  • 10. © 2023 NTT DATA Group Corporation 10 ● Databricksの新機能と従来手法での性能チューニング方法での 4つのクエリの走行時間を比較してどちらが有用か確認したい (そして楽しいクリスマスを) ★Databricksの新機能 リキッドクラスタリング/Predictive IO ● 4つのクエリ ● 対象テーブル ● 概要:3テーブル(TPC-Hベンチマークのテーブル) ● サイズ:約3.8TB(CSVテキスト換算) 一番大きなテーブルは約300億件(CSVテキスト換算:約3.7TB) ということで、Databricksチューニングあれこれ クエリ概要 選定観点 1 フルスキャン 素早く取得できるか。コンパクションとPredictive IOが有用そう 2 3つのカラムでの絞り込み これはやらないとね 従来手法でのチューニング(パーティション+Zorder)との全力 での競り合いを見たい 3 パーティションキー指定なし 2つのカラムでの絞り込み リキッドクラスタリングのかっこいいとこみてみたい♪ 4 パーティションキー指定のみ 1つのカラムでの絞り込み 新機能と従来のパーティション設計手法どちらが有用か…
  • 11. © 2023 NTT DATA Group Corporation 11 リキッドクラスタリング Databricksランタイム13.2以降 • クラスタリングキーを柔軟に定義してくれる機能 パーティション設計要らずかも Predictive IO Databricksランタイム11.2以降 • ディープラーニングでクエリの検索条件の確率を計算して最適な読み込みをしたり、 不要な列や行のデコードを行ってくれる機能 Databricksの新機能(ざっくり説明) この場には詳しい方がたくさん 周りの皆さんにも聞いてください
  • 12. © 2023 NTT DATA Group Corporation 12 比較対象となる実行パターン 比較実行パターンは 実行パターン 概要 1 チューニングなし チューニングを全くしないケース。 以下2つのチューニングの効果を測るための基準値として計測。 2 従来のチューニング (パーティション+Z-Order) 従来TB以上の大規模テーブルでは一般的に実施されているパー ティション+Z-Orderによる鉄板チューニング。 明示的なデータパーティションをユーザ側で指定できるのが強み 3 新機能のチューニング (リキッドクラスタリング) リキッドクラスタリングでパーティション設計なしで、コンパク ション+データクラスタリングを実施する。 ※ランタイム13.x以上でサポート
  • 13. © 2023 NTT DATA Group Corporation ​ ​ SELECT l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority, count(1) FROM customer, orders, lineitem <-- 約300億件(CSVテキスト換算:約3.7TB) WHERE c_custkey = o_custkey AND l_orderkey = o_orderkey AND l_comment like '%final%' GROUP BY l_orderkey, o_orderdate, o_shippriority ORDER BY revenue desc, o_orderdate LIMIT 20; Where句にチューニングで設定した フィルタ条件がないためフルスキャン。。 クエリ1:フルスキャン 1 フルスキャン 素早く取得できるか。 コンパクションとPredictive IOが有用そう 2 3つのカラムでの絞り込み これはやらないとね 従来手法でのチューニング(パーティション+Zorder)との全力で の競り合いを見たい 3 パーティションキー指定なし 2つのカラムでの絞り込み リキッドクラスタリングのかっこいいとこみてみたい♪ 4 パーティションキー指定のみ 1つのカラムでの絞り込み 新機能と従来のパーティション設計手法どちらが有用か… 従来のチューニングパターン : L_SHIPDATE:パーティションキー L_LINENUMBER:Z-Orderキー1 L_SHIPMODE:Z-Orderキー2 リキッドクラスタリング: L_SHIPDATE:クラスタリングキー1 L_LINENUMBER:クラスタリングキー2 L_SHIPMODE:クラスタリングキー3
  • 14. © 2023 NTT DATA Group Corporation SELECT l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority, count(1) FROM customer, orders, Lineitem <-- 約300億件(CSVテキスト換算:約3.7TB) WHERE c_mktsegment = 'BUILDING' AND L_SHIPDATE between '1997-01-01' and '1997-12-31' AND L_LINENUMBER = 1 AND L_SHIPMODE = 'AIR' AND c_custkey = o_custkey AND l_orderkey = o_orderkey GROUP BY l_orderkey, o_orderdate, o_shippriority ORDER BY revenue desc, o_orderdate LIMIT 20; 両ケースとも絶好調の状態!! クエリ2:3つのカラムで絞り込み 従来のチューニングパターン : L_SHIPDATE:パーティションキー L_LINENUMBER:Z-Orderキー1 L_SHIPMODE:Z-Orderキー2 リキッドクラスタリング: L_SHIPDATE:クラスタリングキー1 L_LINENUMBER:クラスタリングキー2 L_SHIPMODE:クラスタリングキー3 1 フルスキャン 素早く取得できるか。 コンパクションとPredictive IOが有用そう 2 3つのカラムでの絞り込み これはやらないとね 従来手法でのチューニング(パーティション+ Zorder)との全力での競り合いを見たい 3 パーティションキー指定なし 2つのカラムでの絞り込み リキッドクラスタリングのかっこいいとこみてみたい♪ 4 パーティションキー指定のみ 1つのカラムでの絞り込み 新機能と従来のパーティション設計手法どちらが有用か…
  • 15. © 2023 NTT DATA Group Corporation ​ ​ SELECT l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority, count(1) FROM customer, orders, Lineitem <-- 約300億件(CSVテキスト換算:約3.7TB) WHERE c_mktsegment = 'BUILDING' AND L_LINENUMBER = 1 AND L_SHIPMODE = 'AIR' AND c_custkey = o_custkey AND l_orderkey = o_orderkey GROUP BY l_orderkey, o_orderdate, o_shippriority ORDER BY revenue desc, o_orderdate LIMIT 20; パーティションキー指定がないので 実力が発揮できないケース。。 アドホック分析にも強いところ が見せられる?? クエリ3:2つのカラムで絞り込み 従来のチューニングパターン : L_SHIPDATE:パーティションキー L_LINENUMBER:Z-Orderキー1 L_SHIPMODE:Z-Orderキー2 リキッドクラスタリング: L_SHIPDATE:クラスタリングキー1 L_LINENUMBER:クラスタリングキー2 L_SHIPMODE:クラスタリングキー3 1 フルスキャン 素早く取得できるか。 コンパクションとPredictive IOが有用そう 2 3つのカラムでの絞り込み これはやらないとね 従来手法でのチューニング(パーティション+Zorder)との全力で の競り合いを見たい 3 パーティションキー指定なし 2つのカラムでの絞り込み リキッドクラスタリングのかっこいいとこみてみた い♪ 4 パーティションキー指定のみ 1つのカラムでの絞り込み 新機能と従来のパーティション設計手法どちらが有用か…
  • 16. © 2023 NTT DATA Group Corporation SELECT l_orderkey, sum(l_extendedprice * (1 - l_discount)) as revenue, o_orderdate, o_shippriority, count(1) FROM customer, orders, Lineitem <-- 約300億件(CSVテキスト換算:約3.7TB) WHERE c_mktsegment = 'BUILDING' AND L_SHIPDATE between '1997-01-01' and '1997-12-31' AND c_custkey = o_custkey AND l_orderkey = o_orderkey GROUP BY l_orderkey, o_orderdate, o_shippriority ORDER BY revenue desc, o_orderdate LIMIT 20; パーティションキーでのみフィルタ される! 1つのクラスタリングキーでのみ フィルタされる! クエリ4:1つのカラムで絞り込み 従来のチューニングパターン : L_SHIPDATE:パーティションキー L_LINENUMBER:Z-Orderキー1 L_SHIPMODE:Z-Orderキー2 リキッドクラスタリング: L_SHIPDATE:クラスタリングキー1 L_LINENUMBER:クラスタリングキー2 L_SHIPMODE:クラスタリングキー3 1 フルスキャン 素早く取得できるか。 コンパクションとPredictive IOが有用そう 2 3つのカラムでの絞り込み これはやらないとね 従来手法でのチューニング(パーティション+Zorder)との全力で の競り合いを見たい 3 パーティションキー指定なし 2つのカラムでの絞り込み リキッドクラスタリングのかっこいいとこみてみたい♪ 4 パーティションキー指定のみ 1つのカラムでの絞り込み 新機能と従来のパーティション設計手法どちらが有 用か…
  • 17. © 2023 NTT DATA Group Corporation Runtime 14.2での処理結果 ※文字数のため以下で省略 青:チューニングなし 橙:既存...Partition+Z-Order 灰:新機能…LiquidClustering クラスタサイズ: i3.2xlarge (61GB / 8cores) ✖️12 worker
  • 18. © 2023 NTT DATA Group Corporation Runtime 14.2での処理結果 フルスキャン コンパクションが優秀 新機能と既存の差はあまり見られない 3カラムでの絞り込み どちらも有効に働いている 新機能と既存の差はあまり見られな い 2カラムでの絞り込み(パーティショ ンキー以外) リキッドクラスタリングが有効に働 いている 1カラム(パーティションキー)での 絞り込み 新機能と既存の差はあまりみられな いがどちらも有効に働いている ※文字数のため以下で省略 青:チューニングなし 橙:既存...Partition+Z-Order 灰:新機能…LiquidClustering クラスタサイズ: i3.2xlarge (61GB / 8cores) ✖️12 worker
  • 19. © 2023 NTT DATA Group Corporation 19 Runtime 10.4 LTS( Predictive I/Oなし) Runtime 14.2( Predictive I/Oあり) Predictive I/Oのメトリクス
  • 20. © 2023 NTT DATA Group Corporation Runtime 14.2とRuntime 10.4LTSによる処理時間の違い ※10.4LTSなので新機能のチューニング比較はできない
  • 21. © 2023 NTT DATA Group Corporation どちらも特殊なソート技術でデータをクラスタリングするため、I/O削減効率は全く同じなのですが、 リキッドクラスタリング - データ書き込み時(512MBまでのWrite)に自動クラスタリングが実行されるため、クエリパフォーマンス 劣化が起きにくく、明示的なOptimizeコマンドの実行時間が短縮されます!! - 将来的な機能拡張でリキッドクラスタリングキーの自動選定が可能になります!!! - テーブル属性として定義され、カタログ情報から参照可能 - レコードレベルの同時更新をサポート - パーティションテーブルとの併用は不可 - 先頭の32カラムのうち最大4カラムまで - テーブル属性として定義され、カタログ情報から参照可能 Z-Order - パーティションテーブルとの併用が可能 - 先頭の32カラムにZ-Orderに定義可能(ただし実際に効果があるのは4カラムまで程度です!) - テーブル属性として定義されないためカタログ情報には記録されません。 Z-Orderとリキッドクラスタリングの違いは?? これからは リキッドクラスタリング!
  • 22. © 2023 NTT DATA Group Corporation 新機能: プレディクティブ オプティマイゼーション! デルタ・テーブルを最適化するためのオペレーションを自動的に識別 管理オペレーションを自動化 フェーズ1 OPTIMIZE(物理ファイル最適化)実行 VACUUM(データ物理削除)実行 ※UnityCatalog管理テーブルが対象 フェーズ2 ANALYZE(統計情報取得)実行 ※UnityCatalog外部テーブルサポート フェーズ3 リキッド・クラスタリングキー 設定の最適化 ALTER CATALOG [catalog_name] {ENABLE | DISABLE} AUTO MAINTENANCE ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} AUTO MAINTENANCE 1 2 3 プレビュー中 TBD TBD
  • 23. © 2023 NTT DATA Group Corporation 23 今回は一部チューニングをやったが他にもチューニングポイントはある まだあるのでTo be continued… いろいろチューニングやりたいこと盛りだくさん チューニング観点 方法 汎用性 想定ユースケース 結果・効果 データの最適化 (OPTIMIZE) Z-Orderによりマッピングして並び替える あり 全体的な最適化に向いている 今回実施 コンパクションを実施する あり 全体的な最適化に向いている 今回実施 シャッフルサイズ の最適化 spark.sql.shuffle.partitions=auto spark.databricks.adaptive.autoOptimizeSh uffle.enabled=True にして、シャッフルサイズを最適化する あり シャッフルサイズが大きくて 処理に時間がかかっている場 合は有効 今回実施 →今回はシャッフル サイズは200のまま であった パーティションサイズ の調整 カーディナリティが適切なキーで repartitionを使用する なし バッチ処理や特定の処理特化 型 今回実は実施 →古いLTSでも有効 Join方法の調整 Broadcastを指定する なし サイズの小さいマスタなどを 扱う際に使用する JOIN方法を明示的に指定する なし INNERJOINは効果ありそう キャッシュヒット率を 上げる Cashを使用する なし メモリに乗り切るデータサイ ズの場合 何度もデータを使用する場合
  • 24. © 2023 NTT DATA Group Corporation 24 • リキッドクラスタリング機能はかなり有用なので これからパーティショニング設計は要らない...かも • Databricksの新機能は従来手法と比べ高速かつチューニングコストが削減できる 新しいランタイムにしてぜひ使ってみましょう! • 現在のコンパクション、バキュームの自動化機能に加え、統計情報の取得、 リキッドクラスタリングキーの自動設定が可能になる予定です! まとめ
  • 26. © 2023 NTT DATA Group Corporation 付録
  • 27. © 2023 NTT DATA Group Corporation チューニングなし 従来のチューニング (コンパクション+パーティ ション+Z-Order) 新機能のチューニング (コンパクション+リキッド クラスタリング) 参考:チューニングあり (コンパクション+Z-Order) クエリ1 129.0 41.16 41.25 42.52 クエリ2 58.85 2.60 1.57 1.56 クエリ3 58.49 16.64 2.64 2.86 クエリ4 55.98 7.05 7.64 7.58 実行結果の詳細 Runtime 14.2
  • 28. © 2023 NTT DATA Group Corporation 実行結果の詳細 Runtime 10.4LTS チューニングなし チューニング1 (コンパクション+パーティ ション+Z-Order) チューニング2 (コンパクション+リキッド クラスタリング) 参考:チューニングあり (コンパクション+Z-Order) クエリ1 196.8 85.8 N/A 87.6 クエリ2 93.0 6.44 N/A 1.94 クエリ3 88.2 48.52 N/A 4.57 クエリ4 89.4 14.06 N/A 15.95
  • 29. © 2023 NTT DATA Group Corporation 取り扱っていたデータサイズの詳細 Lineittem表のCSVテキ ストサイズ:3.72TB チューニングなし 従来のチューニング (コンパクション+パーテ ィション+Z-Order) 新機能のチューニング (コンパクション+リキッ ドクラスタリング) Lineitem表物理サイズ (Deltaフォーマット ) 965.6GiB 237.5GiB 351.8GiB 物理ファイル数 8807 5634 6367 予想より圧縮が効いているのは増幅データのためかも
  • 30. © 2023 NTT DATA Group Corporation 30 Pysparkが好きなのでテーブルデータの物理配置の変更をrepartitionでも試してみました。 テーブルデータの物理配置はテーブル/パーティションテーブル再作成 or クラスタリングする際に時間がかかるのが難点。 Where句での絞り込みに使用するカラムを変更してテーブルを再作成したい場合などはこの方法もあるよ。 この方法だとデータスキッピンングに使用するカラムが複数の場合はパーティショニング・クラスタリングほどのI/O削減はできま せんが、テーブル再作成+Optimizeよりもクイックにファイル物理配置の変更ができるためバッチ処理などでは使用できるかも。 おまけ:こういうチューニング方法もあるよ でもさ リキッドクラスタリングの方が楽だね わかる ソースコード例 LTS 14.2 Repartition +saveAsTable Create table as select +Z- Order 所要時間 22分 14分(CTAS)+50分(Zorder) = 64分 LTS 14.2 チューニング なし Repartition +saveAsTable Create table as select+Z-Order クエリ1 129.0秒 46.42秒 103.8秒 クエリ2 58.9秒 8.39秒 7.21秒 クエリ3 58.5秒 23.21秒 35.57秒 クエリ4 56.0秒 10.68秒 8.84秒 spark.conf.set("spark.sql.adaptive.coalescePartitions.minPartitionNum", "3000") spark.conf.set("spark.sql.adaptive.coalescePartitions.minPartitionSize","10mb") from pyspark.sql.functions import col, substring df = spark.table('main.db_notuning.lineitem') df = df.repartition(3000,col('L_SHIPDATE')) df.write.saveAsTable('lineitem_vt') 例:別の検索キー(キーは1つ指定)に要した時間 例:キー変更後、先の4つのクエリに要した時間