Slide 1

Slide 1 text

クラスターの アクセスモードについて Databricks Japan Mar 2024 1

Slide 2

Slide 2 text

Unity Catalog(UC)クラスター 2 これは何?なぜ気にする必要が? UCクラスター = UCでデータにアクセス可能 要件: 1. UCがワークスペースで有効化 2. ‘Shared’ あるいは ‘Single User’ アクセスモードの クラスター 3. レガシーの機能を選択していない (クレデンシャルパススルーなど) この他のクラスターはUCのデータにアクセスできません

Slide 3

Slide 3 text

UCクラスター 3 アクセスモードが重要です: SharedとSingle-userの違い クライ アント分離 Spark Driver Spark Executors Spark Connect Spark Driver Spark Executors Client App - マルチユーザーを保護: ユーザーコードを 完全に分離 - 完全なUCのガバナンス - 宣言型のデータアクセス(Spark Connectを ベースとしたDataFrame API) - 使用しているマシンへの権限アクセスを持 つシングルユーザー - きめ細かいアクセスコントロールなし (現時 点) - 完全かつ制限なしのSpark API Shared アクセスモード Single-user アクセスモード

Slide 4

Slide 4 text

“ユーザー分離”とは? すべてのユーザーコード(Python, Scala)はクライアント、ドライバ、 エグゼキュータで常に完全に分離されて実行します -> 他のユーザーのデータ、背後のハードウェアなどへのアクセス不可 -> 計算資源をセキュアにユーザー間で共有 Client REPL Local, Scala/Python Code (non-Spark) Spark Driver Spark Executors UDFs Spark Connect DataFrame API クライアント分 離 Driver分離 Executor分離

Slide 5

Slide 5 text

UCコンピュート 5 完全なユーザー分離の Shared アクセスモード ユーザー分離のない Single-user アクセスモード Sparkアーキテクチャが違います! クライアント 分離 Spark Driver Spark Executors Spark Connect Spark Driver Spark Executors Client App

Slide 6

Slide 6 text

共有クラスターの 新機能 6

Slide 7

Slide 7 text

クラスターセットアップ (DBR 13.3 LTS+) • Pythonクラスターライブラリ、jar、 initスクリプトのインストール • UCボリューム、クラウドストレージやワークス ペースファイル(Pythonクラスターライブラリ のみ)からインストール • API、UI、クラスターポリシー経由 • jar & initスクリプトに対する許可リスト • 許可するパスの管理 • メタストア管理者による管理(デフォルト) • MANAGE_ALLOWLISTを用いてカスタマイズ

Slide 8

Slide 8 text

UDF: PySpark UDF (DBR 13.2+) PySpark UDFとは? • ノートブック/PySparkコードに 埋め込み • セッションスコープ • PythonやPandasで記述 共有クラスターでのPySpark UDF: • Scalar Python と Pandas • UC ボリューム & FUSE • UDAF & applyInPandas は 間も無く提供 (Q1 ‘24, DBR 14.3+) Spark Executor 分離を活用

Slide 9

Slide 9 text

UDF: Python UDF in Unity Catalog UC Python UDFとは何か? • 完全に新しいコンセプト / API • UCでカタログ、管理 • ベストなPF UDF体験 使用方法: • UCシングル、共有クラスター、DLT、 DBSQLから作成/呼び出し (DBR 13.2+): CREATE FUNCTION my_fun(...) LANGUAGE PYTHON AS $$ # Python code goes here $$ df.withColumn(expr("jakob.main.my_udf")) Spark Executor 分離を活用

Slide 10

Slide 10 text

Scala & Scala UDF (DBR 14.3 LTS+) これは何? • 共有クラスターでPython & SQLと Scalaワークロードを実行 • Scalar Scala UDF (DBR 14.3+) (ユーザー分離を持つ)完全なUCガバナ ンス • Spark Connectを用いたScala REPL/JVM分離 • 共有Sparkエンジン 今後: • foreach/foreachBatch (Q2 FY24+) クライアントREPL 分離を活用 Spark Executor 分離を活用

Slide 11

Slide 11 text

シングルユーザー クラスターの新機能 1

Slide 12

Slide 12 text

お客様からはどのような声が? GPUを使ったMLワークロードを 実行して分散トレーニング したい! RDDベースのライブラリを使っていま す (例 Sedona) シングルユーザーを 使用 あるいは Dataframe APIや UDFをベースにした ワークアラウンドを検 討 ユーザーのそれぞれにシングルユー ザークラスターは提供できません! 高すぎるし管理 できません。 これらのワークロードで シングルユーザークラスターを使 用 話しま しょう

Slide 13

Slide 13 text

SUクラスターがグループで共有できるとしたら? クラスター作成UI Current Target

Slide 14

Slide 14 text

グループ割り当てシングルユーザークラスター - 1つのグループにクラスターを 割り当て - クラスターを利用している全員が同じ データ権限を持ち、割り当てられているグ ループに「ダウンスコープ」 - シングルユーザーアクセスモードを 使用 - ML、GPU、RDDなどを実行可能 - 馴染みのあるクラスター作成 & 共有クラ スターと同じUX - パブリックプレビューでは名称変更 開発中

Slide 15

Slide 15 text

クラスター作成のUXをシンプルに クラスター作成でガイドされるデ フォルト値: MLRを実行? ⇉ Assigned to Group クラスター MLRは不要? ⇉ Shared クラスター

Slide 16

Slide 16 text

推奨事項 1

Slide 17

Slide 17 text

推奨事項 (1) 共有クラスターがデフォルトのコンピュートです (2) 共有クラスターが現在使えないのであれば、一時的な対策として シングルユーザークラスターを使います (3) 同じアクセスモードを用いて開発 & デプロイ 管理されたレイクハウスでセキュアに作業