Community EditionワークスペースをFree Editionに移行する
プレビュー
この機能は パブリック プレビュー段階です。
Databricks Free Edition のリリースに伴い、Community Edition (CE) はまもなく廃止されます。Community Edition のワークスペース所有者は、ワークスペース移行ツールを使用してできるだけ早く Free Edition に移行する必要があります。
ワークスペースを移行する
移行ツールを使用すると、Databricks によって既存のログインにリンクされた新しい Free Edition ワークスペースが作成されます。その後、ノートブックとデータは新しい無料版のワークスペースに移行されます。
移行は 1 回しか実行できないため、開始する前に、未使用のノートブックとテーブルを必ずクリーンアップしてください。データ移行に関する制限事項の一覧については、 「制限事項」を参照してください。
ステップ 1: 現在のワークスペースを確認する
移行ツールを使用する前に、現在のワークスペースを確認し、移行する主要なノートブックとデータを特定します。移行するテーブルとノートブックをtmpディレクトリとFilestoreディレクトリから移動します。
ステップ 2: 移行プロセスを開始する
移行ツールを使用するには、ワークスペースの所有者である必要があります。
CE ワークスペースで:
- Community Edition ワークスペースの上部にあるバナーで [無料エディションに移動] をクリックします。
- ダイアログ ボックスに移行プロセスの説明が表示されます。
- [移行] をクリックします。CE ワークスペースがロックされ、ログアウトされます。移行が完了するまで再度ログインしないでください。
- 移行が完了すると (通常 2 時間以内)、ログイン リンクが記載された電子メールが届きます。
ステップ 3: 無料版のワークスペースをテストする
ログインすると、Community Edition と Free Edition の両方のワークスペースが表示されます。両方のワークスペースを開いて、すべてが Free Edition ワークスペースに移行されたことを確認します。
- ワークスペース > ユーザー > [あなたの電子メール] を開き、すべてのノートブックが存在することを確認します。
- カタログ > デフォルト を開き、すべてのテーブルが存在することを確認します。
- 重要なノートブックをセルごとに実行します。エラーが表示される場合は、 「一般的な問題」を参照してください。
いくつかのテーブルが小さな部分に分割されていることに気付くかもしれません。これは予想通りです。再度結合する方法については、「テーブルが小さな部分に分割されました」を参照してください。
ステップ 4: CE ワークスペースから不足しているアセットをダウンロードする
転送されなかったアセットがある場合は、 Community Editionワークスペースから手動でダウンロードし、Free Edition ワークスペースに再アップロードできます。
7 日後、Community Edition ワークスペースは完全に削除されます。その日付までにすべてのコンテンツが新しいワークスペースに転送されていることを確認してください。
制限事項
移行によってすべてのリソースが転送されない可能性があります。移行を開始する前に、次の制限事項を確認してください。
- 無料版には 500 テーブルというハード制限があります。Community Edition ワークスペースに 500 を超えるテーブルがある場合、すべてのテーブルが移行されるわけではありません。
- アーカイブされたテーブルまたはテーブルの一部については、移行によって移行が試行されますが、クエリ履歴にエラーとして表示される場合があります。3 か月以上アクセスされていないデータは自動的にアーカイブされます。
- CSV ファイルの移行はベスト エフォートです。区切り文字が誤って使用され、列がグループ化されたり、テーブルの作成に失敗したりする場合があります。
- サポートされているファイルとデータ タイプのみが移行されます。これらのアセットが必要な場合は、移行を開始する前にワークスペースから手動でダウンロードしてください。次のファイルとデータの種類は移行されません。
.zipファイル、.mp4ビデオ、システムログ- XMLファイル
- 隠しファイルまたはサポートされていない形式
- MLflowエクスペリメント
tmp以下のものFilestore- 外部に保存されたファイル
dbfs:/
よくある問題のトラブルシューティング
クラスターサイズやインスタンスタイプを選択できない
Free Edition はサーバレスコンピュートを使用しているため、クラスターサイズやインスタンスタイプをカスタマイズすることはできません。 サーバーレス コンピュートは、ワークロード要件に基づいて自動的にスケールされます。
ソリューション
セルを実行してサーバレス コンピュートを自動的に開始するか、ドロップダウン メニューからコンピュート リソースを選択します。 遅延やエラーが発生した場合は、ワークロードを軽量に保ち、数分後に再試行してください。
ファイルの1つが転送されませんでした
これは、ファイルが非標準形式 ( .mp4 、 .zipなど)、非表示、またはサポートされていない場合に発生します。
ソリューション
7 日以内に Community Edition ワークスペースからファイルをダウンロードし、Free Edition ワークスペースに手動でアップロードします。
私のテーブルは小さな部分に分割されました
一部の CE テーブルは、断片的に保存された大きなファイルによってバックアップされていました。移行中、Databricks は各部分を独自のテーブルとしてコピーします。
ソリューション
UNION ALLを使用して再結合:
CREATE OR REPLACE TABLE my_full_table AS
SELECT * FROM my_table_part1
UNION ALL
SELECT * FROM my_table_part2
UNION ALL
SELECT * FROM my_table_part3;
テーブルは転送されましたが、ノートブックでは見つかりません
ノートブックは名前でテーブルを参照している可能性がありますが、移行中にテーブルの名前が変更されました。
無料版では、すべてのテーブルはworkspace.default.<table_name>に作成されます。テーブル名は次のいずれかです。
- ファイルを含むディレクトリ。したがって、
/my_table/my_table_data_file.parquetはmy_tableと呼ばれます。 - DBFSルートのベースにある場合はファイル名が使用されます。 したがって、
/my_table_data_file.parquetはmy_table_data_fileと呼ばれます。
ソリューション
-
カタログ内の基になるテーブルを見つけます。
-
テーブルのファイル名をコピーします。
-
ノートブックに戻ります。
-
Databricks Assistantに、古いテーブルの場所のすべてのインスタンスを新しいテーブルの場所に置き換えるように指示します。
TextReplace all references to 'old_table_name' with 'workspace.default.new_table_name' in this notebook
ノートブックのコードが機能しません
これは通常、次の 2 つのカテゴリに分類されます。
ケース1: RDDを使用している場合
RDD は従来の Spark 抽象化であり、無料エディションではサポートされていません。それらを DataFrames に置き換えます。
ソリューション
Databricks AssistantにRDDコードの変換を依頼します。
Convert all RDD operations in this notebook to DataFrame operations
ケース2: ScalaまたはRを使用している場合
サーバレスコンピュートはPythonとSQLのみをサポートします。 ノートブックで Scala または R を使用している場合は、それを Python に変換する必要があります。
ソリューション
Databricks Assistantにコードの翻訳を依頼します。
Convert this Scala/R code to Python using PySpark DataFrames
dbutils.fs.mountコマンドが失敗しました
新しい Databricks ワークスペースは、従来の DBFS マウントをサポートしていません。
ソリューション
代わりにUnity Catalog外部位置とボリュームを使用してください。 データセットまたは共有ファイルを保存するには、ボリュームを作成します。
CREATE VOLUME IF NOT EXISTS workspace.default.my_volume;
次に、次を使用してファイルにアクセスします。
# Write data
df.write.mode("overwrite").option("path", "/Volumes/workspace/default/my_volume/my_data").saveAsTable("my_table")
# Read data
df = spark.read.table("my_table")
/dbfs/ 内のファイルを読み書きできません
無料版では、セキュリティ上の理由から、 DBFSルートへの直接アクセスが制限されています。
ソリューション
データセットまたは共有ファイルの保存にはUnity Catalogボリュームを使用します。
# Create a volume (run once)
spark.sql("CREATE VOLUME IF NOT EXISTS workspace.default.my_data_volume")
# Write files
dbutils.fs.cp("file:/local/path/data.csv", "/Volumes/workspace/default/my_data_volume/")
# Read files
df = spark.read.csv("/Volumes/workspace/default/my_data_volume/data.csv", header=True, inferSchema=True)