メインコンテンツまでスキップ

Hive のテーブルとビューを Unity Catalog にアップグレードする

この記事では、既存のワークスペースローカルHive metastoreに登録されているテーブルとビューをUnity Catalogにアップグレードする方法について説明します。

注記

この記事で説明するテーブル移行プロセスの代わりに、Hive metastore フェデレーションを使用して、 をミラーリングするカタログをUnity Catalog Hive metastoreに作成できます。Hive metastoreフェデレーション:Unity Catalog に登録されたテーブルを管理するための の有効化 を参照してください。Hive metastore

Hive テーブルを、Unity Catalog 内の マネージドテーブル または 外部テーブル にアップグレードできます。

  • マネージドテーブル は、 Unity Catalogでテーブルを作成するための推奨される方法です。 Unity Catalog フルマネージド そのライフサイクル、ファイル レイアウト、およびストレージ。 Unity Catalog は、パフォーマンスも自動的に最適化します。 マネージドテーブルは常に Delta テーブル形式を使用します。

    マネージドテーブルは、 用に予約した 管理されたストレージの場所Unity Catalogにあります。このストレージ要件のため、既存の テーブルを as マネージドテーブルにコピーする場合は、CLONE またはCREATE TABLE AS SELECT (CTAS) を使用する必要があります。HiveUnity Catalog

  • 外部テーブル は、データのライフサイクル、ファイル レイアウト、およびストレージの場所が Unity Catalog によって管理されていないテーブルです。 外部テーブルでは、複数のデータ形式がサポートされています。

    通常、外部テーブルを使用するのは、Databricks コンピュート以外の (つまり、 Databricks クラスターや Databricks SQL ウェアハウスを使用しない) データに直接アクセスする必要がある場合のみです。 外部テーブルは、データをコピーすることなく、既存のデータを Unity Catalog にすばやく登録できるため、移行シナリオでも便利です。 これは、外部テーブルのデータが予約済みの管理ストレージに存在する必要がないためです。

Unity Catalogの managed テーブルと外部テーブルの詳細については、「テーブルとは」を参照してください。

Hive から Unity Catalog への移行オプション

Hive テーブルを Unity Catalog に移行する準備ができたら、ユース ケースに応じていくつかのオプションがあります。

移行ツール

説明

Hive テーブルの要件

Unity Catalog テーブルが作成されました

なぜそれを使用する必要があるのですか?

Unity Catalog アップグレード ウィザード

カタログ エクスプローラー機能を使用すると、スキーマ全体 (データベース) と複数のマネージドテーブルおよび外部テーブルをHive metastoreからUnity Catalogメタストアに外部テーブルとして一括コピーできます。 アップグレード ウィザードは、選択したテーブルに対してSYNCコマンドを実行し、元の Hive テーブルはそのまま残します。 ソース Hive テーブルの変更を取得するために、定期的なアップグレードをスケジュールするオプションがあります。

マネージドまたは外部の Hive テーブル

外部のみ

Hive テーブルを Unity Catalog の外部テーブルにすばやくアップグレードしたいが、視覚的なインターフェイスを好む。 ソース Hive テーブルが変更されたときに定期的な同期をスケジュールする機能は、Unity Catalog への移行中に "ハイブリッド" Hive と Unity Catalog のワークスペースを管理するための便利なツールになります。

SYNC SQL コマンド

SYNC 内の外部テーブルとマネージドテーブル (マネージドテーブルがDatabricks ワークスペース ストレージ (DBFS ルートとも呼ばれる) の外部に保存されている場合)Hive metastore をUnity Catalog 内の外部テーブルにコピーできるようになります。個々のテーブルまたはスキーマ全体を同期できます。

SYNC は、 Hive metastore 内の新しい変更を取得し、それらを Unity Catalogに同期するスケジュールに従って実行できるように設計されています。

マネージドまたは外部の Hive テーブル

外部のみ

Hive テーブルを Unity Catalog の外部テーブルにすばやくアップグレードしたいが、ビジュアル インターフェイスではなく SQL コマンドを使用することを好む。

ソース Hive テーブルが変更されたときに既存の Unity Catalog テーブルを更新するための定期的な SYNC 実行をスケジュールすると、Unity Catalog への移行中に "ハイブリッド" Hive と Unity Catalog ワークスペースを管理するための便利なツールになります。

SYNC を使用して、Databricksワークスペースストレージにあるマネージドテーブルをアップグレードすることはできないため、それらのテーブルには CREATE TABLE CLONE を使用してください。

CREATE TABLE CLONE SQL コマンド

CREATE TABLE CLONE Hive metastore内のマネージドテーブルをUnity Catalog内のマネージドテーブルにアップグレードできます。 個々のテーブルを複製できます。

ディープクローンは、ソーステーブルのデータとメタデータをクローンターゲットにコピーします。

Delta 形式のマネージド Hive テーブル。

マネージドのみ

Unity Catalog データガバナンスを最大限に活用するために、Hive マネージドテーブルを Unity Catalog マネージドテーブルに移行する必要がありますが、Hive テーブルは「Hive テーブル要件」セルに記載されている基準を満たしています。

Hive テーブルが「Hive テーブル要件」を満たさない場合は、CREATE TABLE AS SELECT SQL コマンドを使用して、Hive テーブルをUnity Catalogマネージドテーブルにアップグレードできます。ただし、ほとんどの場合、 CLONE が好まれます。 クローニングの構文は CREATE TABLE AS SELECTよりも単純で、パーティショニング、フォーマット、インバリアント、null 可能性、ストリーム、 COPY INTO、その他のメタデータを指定する必要はありません。これらはソーステーブルからクローニングされるためです。

始める前に

このセクションでは、準備する必要がある移行の影響の一部と、アクセス許可とコンピュートの要件について説明します。

影響を理解する

新しい Unity Catalog テーブルを使用するようにワークロードを変更する場合は、一部の動作を変更する必要があることに注意してください。

  • Unity Catalog は Hive とは異なる方法でパーティションを管理します。 パーティションを直接操作する Hive コマンドは、Unity Catalog によって管理されるテーブルではサポートされていません。
  • CREATE TABLE CLONEを実行しても、テーブル履歴は移行されません。クローニングした Hive metastore 内のテーブルは Unity Catalog 新しいテーブルとして扱われます。 Delta Lake のタイムトラベルや、移行前の履歴に依存するその他の操作は実行できません。

詳細については、「Unity Catalog と従来のHive metastoreの操作」を参照してください。

必要条件

移行を実行するには、次のものが必要です。

  • Unity Catalog メタストアと少なくとも 1 つの Unity Catalog カタログを持つワークスペース。 「Unity Catalog の設定と管理」を参照してください。

  • テーブルの移行先の Unity Catalog カタログに対する権限。 これらの特権要件は、この記事で説明する各手順の開始時に列挙されています。

  • Unity Catalog外部テーブルへの移行の場合: Unity Catalogで定義されているストレージ資格情報と外部ロケーション、および外部ロケーションに対するCREATE EXTERNAL TABLE権限。

  • 次の両方の要件を満たす Databricks コンピュートへのアクセス:

    • Unity Catalog (標準または専用アクセス モードを使用するSQLウェアハウスまたはコンピュート リソース) をサポートします。
    • Hive metastore内のテーブルへのアクセスを許可します。

    標準アクセス モードを使用するコンピュート リソースは 、デフォルトによって従来のテーブルアクセスコントロール に対して有効になっているため、そのアクセス モードを使用する場合は、移行元の Hive metastore に対するテーブルアクセスコントロール 特権が必要です。 次の SQL コマンドを使用して、自分自身にアクセス権を付与できます。

    SQL
    GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`

    または、コンピュート リソースを専用アクセス モードで使用することもできます。

Hive metastore内のオブジェクトに対する特権の管理の詳細については、「特権とセキュリティ保護可能なオブジェクト (レガシ)」Hive metastoreを参照してください。Unity Catalog メタストア内のオブジェクトに対する権限の管理の詳細については、「Unity Catalogでの権限の管理」を参照してください。

Hive metastoreによって管理されるテーブルを特定する

テーブルが現在 Unity Catalog に登録されているかどうかを確認するには、カタログ名を確認します。 カタログhive_metastore内のテーブルは、ワークスペースローカル Hive metastoreに登録されます。 一覧表示されているその他のカタログは、Unity Catalog によって管理されます。

カタログエクスプローラーを使用して hive_metastore カタログ内のテーブルを表示するには、以下の手順を実行します。

  1. サイドバーカタログアイコン カタログ をクリックします。
  2. カタログペインで、hive_metastore カタログを参照してスキーマノードを展開します。

[カタログ] ウィンドウのフィルター フィールドを使用して、特定のテーブルを検索することもできます。

アップグレードウィザードを使用して、スキーマまたは複数のテーブルを Hive metastore から外部テーブル Unity Catalog アップグレードします

Catalog Explorer アップグレード ウィザードを使用して、完全なスキーマ (データベース) と複数の外部テーブルまたはマネージドテーブルをDatabricks Hive metastoreからUnity Catalog メタストアにコピーできます。アップグレードされたテーブルは、Unity Catalog 内の外部テーブルになります。

アップグレード ウィザードをいつ使用するかを決定する方法については、「 Hive から Unity Catalog への移行オプション」を参照してください。

必要条件

データ形式の要件 :

コンピュートの要件 :

  • Unity Catalogをサポートするコンピュート リソース始める前にを参照してください。

Unity Catalog オブジェクトとアクセス許可の要件 :

  • Unity Catalog がテーブルの場所パスにアクセスすることを承認するサービス アカウントの ストレージ資格情報
  • 作成したストレージ資格情報と、クラウド テナント上のデータへのパスを参照する 外部ロケーション
  • CREATE EXTERNAL TABLE アップグレードするテーブルの外部ロケーションに対する権限。

Hive テーブルのアクセス要件 :

  • コンピュートが標準アクセスモードを使用している場合は、レガシテーブルアクセスコントロールを使用して付与された Hive metastore内のテーブルにアクセスする必要があります。 始める前にを参照してください。

アップグレードプロセス

  1. サイドバーカタログアイコン カタログ をクリックして、カタログエクスプローラーを開きます。

  2. カタログとして hive_metastore を選択し、アップグレードするスキーマ (データベース) を選択します。

    データベースを選択

  3. スキーマ詳細ビューの右上にある [ アップグレード ] をクリックします。

  4. アップグレードするすべてのテーブルを選択し、[ 次へ ] をクリックします。

    アップグレード ウィザードを使用してアップグレードできるのは、Unity Catalog でサポートされている形式の外部テーブルのみです。 外部テーブルの操作を参照してください。

  5. 各テーブルのコピー先カタログ、スキーマ (データベース)、および所有者を設定します。

    ユーザーは、カタログとスキーマに対する権限のコンテキストで、新しく作成されたテーブルにアクセスできます。

    テーブルの所有者には、 SELECTMODIFYなど、テーブルに対するすべての権限があります。 所有者を選択しない場合、マネージドテーブルはあなたが所有者として作成されます。 Databricks では、通常、グループにテーブルの所有権を付与することをお勧めします。 Unity Catalog でのオブジェクトの所有権の詳細については、「 Unity Catalog オブジェクトの所有権の管理」を参照してください。

    同じカタログとスキーマを複数のテーブルに割り当てるには、テーブルを選択して [ Set destination ] ボタンをクリックします。

    同じ所有者を複数のテーブルに割り当てるには、テーブルを選択して [ 所有者を設定 ] ボタンをクリックします。

  6. テーブルの設定を確認します。 これらを変更するには、[ 前へ ] ボタンをクリックします。

  7. 「アップグレード用のクエリを作成」 をクリックします。

    クエリ・エディタに、生成された SQL 文が表示されます。

  8. クエリを実行します。

    クエリが完了すると、各テーブルのメタデータが Hive metastore から Unity Catalogにコピーされます。 これらのテーブルは、アップグレードウィザードでアップグレード済みとマークされています。

  9. 新しい各テーブルの [Permissions ] タブを使用して、きめ細かなアクセス制御を定義します。

  10. (オプション)アップグレードされた各 Hive テーブルに、新しい Unity Catalog テーブルにユーザーをポイントするコメントを追加します。

    hive.metastore カタログの元のテーブルに戻り、テーブル コメントを追加します。

    テーブル コメントで次の構文を使用すると、非推奨の Hive テーブルを参照するノートブックと SQL クエリ エディター クエリでは、取り消し線付きのテキストを使用して非推奨のテーブル名が表示され、コメントが警告として表示され、Databricks Assistant への クイック修正 リンクが提供されます。これにより、新しいテーブルを参照するようにコードを更新できます。

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

    Hive テーブルが移行されたことを示すコメントの追加を参照してください。

  11. 新しいテーブルを使用するようにワークロードを変更します。

    オプションの前の手順で示したようなコメントを元の Hive テーブルに追加した場合は、 クイック フィックス リンクと Databricks Assistant を使用して、ワークロードの検索と変更に役立てることができます。

アップグレード ウィザードを使用して、1 つの Hive テーブルを Unity Catalog 外部テーブルにアップグレードする

カタログ エクスプローラー のアップグレード ウィザードを使用して、デフォルトHive metastore からUnity Catalog メタストアに 1 つのテーブルをコピーできます

アップグレード ウィザードをいつ使用するかを決定する方法については、「 Hive から Unity Catalog への移行オプション」を参照してください。

必要条件

データ形式の要件 :

コンピュートの要件 :

  • Unity Catalogをサポートするコンピュート リソース始める前にを参照してください。

Unity Catalog オブジェクトとアクセス許可の要件 :

  • Unity Catalog がテーブルの場所パスにアクセスすることを承認するサービス アカウントの ストレージ資格情報
  • 作成したストレージ資格情報と、クラウド テナント上のデータへのパスを参照する 外部ロケーション
  • CREATE EXTERNAL TABLE アップグレードするテーブルの外部ロケーションに対する権限。

アップグレードプロセス

外部テーブルをアップグレードするには:

  1. サイドバーカタログアイコン 「カタログ 」をクリックして、「カタログエクスプローラー」を開きます。

  2. アップグレードするデータベースを選択し、次にテーブルを選択します。

  3. テーブル詳細ビューの右上隅にある [アップグレード ] をクリックします。

  4. アップグレードするテーブルを選択して、「 次へ 」をクリックしてください。

  5. 宛先カタログ、スキーマ (データベース)、および所有者を選択します。

    ユーザーは、カタログとスキーマに対する権限のコンテキストで、新しく作成されたテーブルにアクセスできます。

    テーブルの所有者には、 SELECTMODIFYなど、テーブルに対するすべての権限があります。 オーナーを選択しない場合、マネージドテーブルはあなたがオーナーとして作成されます。 Databricks では、通常、グループにテーブルの所有権を付与することをお勧めします。 Unity Catalog でのオブジェクトの所有権の詳細については、「 Unity Catalog オブジェクトの所有権の管理」を参照してください。

  6. テーブル詳細ビューの右上隅にある [アップグレード ] をクリックします。

  7. アップグレードするテーブルを選択して、「 次へ 」をクリックしてください。

    これで、テーブルのメタデータが Unity Catalog にコピーされ、新しいテーブルが作成されました。 「 権限 」タブを使用して、きめ細かなアクセス制御を定義できるようになりました。

  8. [権限 ] タブを使用して、きめ細かなアクセス制御を定義します。

  9. (オプション)新しい Unity Catalog テーブルをユーザーにポイントするコメントを Hive テーブルに追加します。

    hive.metastore カタログの元のテーブルに戻り、テーブル コメントを追加します。

    テーブル コメントで次の構文を使用すると、非推奨の Hive テーブルを参照するノートブックと SQL クエリ エディター クエリでは、取り消し線付きのテキストを使用して非推奨のテーブル名が表示され、コメントが警告として表示され、Databricks Assistant への クイック修正 リンクが提供されます。これにより、新しいテーブルを参照するようにコードを更新できます。

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

    Hive テーブルが移行されたことを示すコメントの追加を参照してください。

  10. 新しいテーブルを使用するように既存のワークロードを変更します。

    オプションの前の手順で示したようなコメントを元の Hive テーブルに追加した場合は、 クイック フィックス リンクと Databricks Assistant を使用して、ワークロードの検索と変更に役立てることができます。

注記

古いテーブルが不要になった場合は、 Hive metastoreから削除できます。 外部テーブルを削除しても、クラウド テナント上のデータ ファイルは変更されません。

SYNC を使用して Hive テーブルを Unity Catalog 外部テーブルにアップグレードする

SYNC SQL コマンドを使用して、 Hive metastore 内の外部テーブルを Unity Catalog内の外部テーブルにコピーできます。 個々のテーブルまたはスキーマ全体を同期できます。

SYNCHiveまた、 を使用してDatabricks ワークスペース ストレージ (DBFS ルートとも呼ばれます) の外部に保存されているマネージドテーブル の外部テーブルにコピーすることもできます。Unity Catalogワークスペースストレージに保存されている Hive マネージドテーブルをコピーするために使用することはできません。 これらのテーブルをコピーするには、代わりに CREATE TABLE CLONE を使用します。

SYNC コマンドは、アップグレードする各ソース テーブルに対して書き込み操作を実行し、ブックキーピング用のテーブル プロパティ (ターゲット Unity Catalog 外部テーブルのレコードなど) を追加します。

SYNC Unity Catalogまた、 内のソース テーブルが変更されたときに、既存のHive metastore テーブルを更新するためにも使用できます。これにより、Unity Catalog に徐々に移行するための優れたツールになります。

詳細については、 SYNCを参照してください。 アップグレード ウィザードをいつ使用するかを決定する方法については、「 Hive から Unity Catalog への移行オプション」を参照してください。

必要条件

データ形式の要件 :

コンピュートの要件 :

  • Unity Catalogをサポートするコンピュート リソース始める前にを参照してください。

Unity Catalog オブジェクトとアクセス許可の要件 :

  • Unity Catalog がテーブルの場所パスにアクセスすることを承認するサービス アカウントの ストレージ資格情報
  • 作成したストレージ資格情報と、クラウド テナント上のデータへのパスを参照する 外部ロケーション
  • CREATE EXTERNAL TABLE アップグレードするテーブルの外部ロケーションに対する権限。

Hive テーブルのアクセス要件 :

  • コンピュートが標準アクセスモードを使用している場合は、レガシテーブルアクセスコントロールを使用して付与された Hive metastore内のテーブルにアクセスする必要があります。 始める前にを参照してください。

アップグレードプロセス

SYNCを使用して Hive metastore 内のテーブルを Unity Catalog 外部テーブルにアップグレードするには:

  1. ノートブックまたは SQL クエリエディタで、次のいずれかを実行します。

    外部 Hive テーブルを同期します。

    SQL
    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;

    外部 Hive スキーマとそのすべてのテーブルを同期します。

    SQL
    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;

    Databricks ワークスペース ストレージの外部に保存されているマネージドHive テーブルを同期します。

    SQL
    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;

    Databricks ワークスペース ストレージの外部に格納されているマネージド Hive テーブルを含むスキーマを同期します。

    SQL
    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
  2. アカウントレベルのユーザーまたはグループに新しいテーブルへのアクセス権を付与します。 「Unity Catalog での特権の管理」を参照してください。

  3. (オプション)元の Hive テーブルに、新しい Unity Catalog テーブルにユーザーを誘導するコメントを追加します。

    hive.metastore カタログの元のテーブルに戻り、テーブル コメントを追加します。Catalog Explorer を使用してテーブル コメントを追加する方法については、「 データ資産と AI 資産にコメントを追加する」を参照してください。 ノートブックまたは SQL クエリエディタで SQL ステートメントを使用してテーブルコメントを追加する方法については、「 COMMENT ON」を参照してください。

    テーブル コメントで次の構文を使用すると、非推奨の Hive テーブルを参照するノートブックと SQL クエリ エディター クエリでは、取り消し線付きのテキストを使用して非推奨のテーブル名が表示され、コメントが警告として表示され、Databricks Assistant への クイック修正 リンクが提供されます。これにより、新しいテーブルを参照するようにコードを更新できます。

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

    Hive テーブルが移行されたことを示すコメントの追加を参照してください。

  4. テーブルが移行されたら、ユーザーは新しいテーブルを使用するように既存のクエリとワークロードを更新する必要があります。

    オプションの前の手順で示したようなコメントを元の Hive テーブルに追加した場合は、 クイック フィックス リンクと Databricks Assistant を使用して、ワークロードの検索と変更に役立てることができます。

  5. 古いテーブルを削除する前に、テーブルへのアクセスを取り消し、関連するクエリとワークロードを再実行して、依存関係をテストします。

    古いテーブルを参照する既存のコードを見つけて更新するために非推奨コメントにまだ依存している場合は、古いテーブルを削除しないでください。 同様に、元の同期以降にそのテーブルが変更された場合は、古いテーブルを削除しないでください: SYNC を使用して、ソース Hive テーブルからの変更で既存の Unity Catalog テーブルを更新できます。

CLONE を使用して Hive マネージドテーブルを Unity Catalog マネージドテーブルにアップグレードする

CREATE TABLE CLONEDeltaを使用して、Hive metastore 内のマネージド テーブルを のマネージドテーブルにアップグレードします。Unity Catalog個々のテーブルをクローニングできます。 レガシー Hive metastore から Unity Catalogにテーブルをクローンする場合は、ディープクローンを使用する必要があります。

CLONEをいつ使用するかを決定する方法については、「Hive から Unity Catalog への移行オプション」を参照してください。CLONEの詳細については、「Databricksでのテーブルのクローン作成」を参照してください。

必要条件

データ形式の要件 :

  • Delta 形式のマネージド Hive テーブル。

コンピュートの要件 :

  • Unity Catalogをサポートするコンピュート リソース始める前にを参照してください。

権限要件 :

  • テーブルを追加するカタログとスキーマに対する USE CATALOG 権限と USE SCHEMA 権限、およびスキーマに対する CREATE TABLE 、またはカタログまたはスキーマの所有者である必要があります。 「Unity Catalog の特権とセキュリティ保護可能なオブジェクト」を参照してください。
  • コンピュートが標準アクセスモードを使用している場合は、レガシテーブルアクセスコントロールを使用して付与された Hive metastore内のテーブルにアクセスする必要があります。 始める前にを参照してください。

アップグレードプロセス

Hive metastore内のマネージドテーブルをUnity Catalog内のマネージドテーブルにアップグレードするには:

  1. ノートブックまたは SQL クエリエディタで、次のいずれかを実行します。

    Hive metastore内のマネージドテーブルをディープクローンします。

    SQL
    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;

    テーブルのプロパティなど、追加のパラメーターに関する情報については、「 CREATE TABLE CLONE」を参照してください。

  2. アカウントレベルのユーザーまたはグループに新しいテーブルへのアクセス権を付与します。 「Unity Catalog での特権の管理」を参照してください。

  3. (オプション)元の Hive テーブルに、新しい Unity Catalog テーブルにユーザーを誘導するコメントを追加します。

    hive.metastore カタログの元のテーブルに戻り、テーブル コメントを追加します。Catalog Explorer を使用してテーブル コメントを追加する方法については、「 データ資産と AI 資産にコメントを追加する」を参照してください。 ノートブックまたは SQL クエリエディタで SQL ステートメントを使用してテーブルコメントを追加する方法については、「 COMMENT ON」を参照してください。

    テーブル コメントで次の構文を使用すると、非推奨の Hive テーブルを参照するノートブックと SQL クエリ エディター クエリでは、取り消し線付きのテキストを使用して非推奨のテーブル名が表示され、コメントが警告として表示され、Databricks Assistant への クイック修正 リンクが提供されます。これにより、新しいテーブルを参照するようにコードを更新できます。

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

    Hive テーブルが移行されたことを示すコメントの追加を参照してください。

  4. テーブルが移行されたら、ユーザーは新しいテーブルを使用するように既存のクエリとワークロードを更新する必要があります。

    オプションの前の手順で示したようなコメントを元の Hive テーブルに追加した場合は、 クイック フィックス リンクと Databricks Assistant を使用して、ワークロードの検索と変更に役立てることができます。

  5. 古いテーブルを削除する前に、テーブルへのアクセスを取り消し、関連するクエリとワークロードを再実行して、依存関係をテストします。

    古いテーブルを参照する既存のコードを見つけて更新するために非推奨コメントにまだ依存している場合は、古いテーブルを削除しないでください。 同様に、シャロークローンを実行した場合は、古いテーブルを削除しないでください。 浅いクローンは、ソース Hive テーブルからデータを参照します。

AS SELECT を使用したHive Unity Catalogテーブルから マネージドテーブルへのアップグレードCREATE TABLE

CREATE TABLE CLONEHive metastoreUnity Catalog内のテーブルを のマネージドテーブルに移行するために を使用できない場合、または使用したくない場合は、Unity Catalog を使用して テーブルをクエリすることで、 で新しいマネージドテーブルを作成できます。HiveCREATE TABLE AS SELECT``CREATE TABLE CLONECREATE TABLE AS SELECT の違いについては、「 Hive から Unity Catalog への移行オプション」を参照してください。

必要条件

コンピュートの要件 :

  • Unity Catalogをサポートするコンピュート リソース始める前にを参照してください。

権限要件 :

  • テーブルを追加するカタログとスキーマに対する USE CATALOG 権限と USE SCHEMA 権限、およびスキーマに対する CREATE TABLE 、またはカタログまたはスキーマの所有者である必要があります。 「Unity Catalog の特権とセキュリティ保護可能なオブジェクト」を参照してください。
  • コンピュートが標準アクセスモードを使用している場合は、レガシテーブルアクセスコントロールを使用して付与された Hive metastore内のテーブルにアクセスする必要があります。 始める前にを参照してください。

アップグレードプロセス

CREATE TABLE AS SELECT を使用してHive metastore内のテーブルをUnity Catalog内のマネージドテーブルにアップグレードするには:

  1. 既存のテーブルに対してクエリを実行して、新しい Unity Catalog テーブルを作成します。 プレースホルダーの値を置き換えます。

    • <uc-catalog>: 新しいテーブルの Unity Catalog カタログ。

    • <uc-schema>: 新しいテーブルの Unity Catalog スキーマ。

    • <new-table>: Unity Catalog テーブルの名前。

    • <source-schema>: Hive テーブルのスキーマ ( defaultなど)。

    • <source-table>: Hive テーブルの名前。

SQL
CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;

一部の列または行のみを移行する場合は、 SELECT ステートメントを変更します。

注記

ここで説明するコマンドは、データが専用の 管理ストレージの場所に コピーされるマネージドテーブル を作成します。代わりに、クラウド ストレージ内のデータを移動せずにテーブルが Unity Catalog に登録されている 外部テーブルを作成する場合は、「 アップグレード ウィザードを使用して 1 つの Hive テーブルを Unity Catalog 外部テーブルにアップグレードする」を参照してください。 「Unity Catalog で管理されたストレージの場所を指定する」も参照してください。

  1. アカウントレベルのユーザーまたはグループに新しいテーブルへのアクセス権を付与します。 「Unity Catalog での特権の管理」を参照してください。

  2. (オプション)元の Hive テーブルに、新しい Unity Catalog テーブルにユーザーを誘導するコメントを追加します。

    hive.metastore カタログの元のテーブルに戻り、テーブル コメントを追加します。Catalog Explorer を使用してテーブル コメントを追加する方法については、「 データ資産と AI 資産にコメントを追加する」を参照してください。 ノートブックまたは SQL クエリエディタで SQL ステートメントを使用してテーブルコメントを追加する方法については、「 COMMENT ON」を参照してください。

    テーブル コメントで次の構文を使用すると、非推奨の Hive テーブルを参照するノートブックと SQL クエリ エディター クエリでは、取り消し線付きのテキストを使用して非推奨のテーブル名が表示され、コメントが警告として表示され、Databricks Assistant への クイック修正 リンクが提供されます。これにより、新しいテーブルを参照するようにコードを更新できます。

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

    Hive テーブルが移行されたことを示すコメントの追加を参照してください。

  3. テーブルが移行されたら、ユーザーは新しいテーブルを使用するように既存のクエリとワークロードを更新する必要があります。

    オプションの前の手順で示したようなコメントを元の Hive テーブルに追加した場合は、 クイック フィックス リンクと Databricks Assistant を使用して、ワークロードの検索と変更に役立てることができます。

  4. 古いテーブルを削除する前に、テーブルへのアクセスを取り消し、関連するクエリとワークロードを再実行して、依存関係をテストします。

    古いテーブルを参照する既存のコードを見つけて更新するために非推奨コメントにまだ依存している場合は、古いテーブルを削除しないでください。

ビューを Unity Catalog にアップグレードする

ビューの参照されるすべてのテーブルを同じ Unity Catalog メタストアにアップグレードした後、新しいテーブルを参照する 新しいビューを作成できます

Hive テーブルが移行されたことを示すコメントを追加します

非推奨の Hive テーブルにコメントを追加して、新しい Unity Catalog テーブルをユーザーにポイントすると、非推奨の Hive テーブルを参照するノートブックと SQL クエリ エディターのクエリでは、取り消し線付きのテキストを使用して非推奨のテーブル名が表示され、コメントが警告として表示され、Databricks Assistant への クイック修正 リンクが提供され、新しいテーブルを参照するようにコードを更新できます。

Hive テーブルの非推奨の警告

コメントは、次の形式にする必要があります。

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Catalog Explorer を使用してテーブル コメントを追加する方法については、「 データ資産と AI 資産にコメントを追加する」を参照してください。 ノートブックまたは SQL クエリエディタで SQL ステートメントを使用してテーブルコメントを追加する方法については、「 COMMENT ON」を参照してください。

Databricks Assistant を使用して非推奨のテーブル参照を更新する

ノートブックのセルまたは SQL クエリ エディターのステートメントのテーブル名に取り消し線テキストが表示される場合は、テーブル名の上にマウス ポインターを置くと警告通知が表示されます。 その警告通知にテーブルが非推奨として記載され、新しいテーブル名が表示されている場合は、[ クイック修正] 、[ 非推奨の修正 ]の順にクリックします。 Databricks Assistantが開き、非推奨のテーブル名を新しい Unity Catalogテーブル名に置き換えることが提案されます。 指示に従ってタスクを完了します。

Databricks Assistant を使用した Hive テーブルの更新を示すビデオ

「Databricks Assistant を有効にして試す」も参照してください。