0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Posted at

Upgrade tables and views to Unity Catalog | Databricks on AWS [2022/3/16時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

プレビュー
Unity Catalogはパブリックプレビューです。Unity Catalog向けのアカウントコンソールUIはプライベートプレビューです。プレビューに参加するには、Databricks担当者にお問合せください。

Unity Catalogのアクセスコントロールと監査のメカニズムを活用し、複数のワークスペースでデータを共有するために、テーブルとビューをUnity Catalogにアップグレードすることができます。

要件

テーブルをUnity Catalogにアップグレードする

  1. 必要であればメタストアを作成します。メタストアの作成をご覧ください。

  2. テーブルを保持しているワークスペースにメタストアを割り当てます。

  3. 既存のテーブルにクエリーを行うことで新規のUnity Catalogを作成します。プレースホルダーの値を置き換えます。

    • <catalog>: 新規テーブルに対するUnity Catalogのカタログです。
    • <new_schema>: 新規テーブルに対するUnity Catalogのスキーマです。
    • <new_table>: Unity Catalogテーブルの名前です。
    • <old_schema>: defaultのような元のテーブルのスキーマです。
    • <old_table>: 元のテーブルの名前です。
    SQL
    CREATE TABLE <catalog>.<new_schema>.<new_table>
    AS SELECT * FROM hive_metastore.<old_schema>.<old_table>;
    

    特定のカラム、行のみを移行する場合には、SELECT文を修正します。

    注意
    このコマンドは、メタストアをセットアップした際に指定したストレージ格納場所にデータがコピーされるマネージドテーブルを作成します。データをクラウドストレージに移動することなしにテーブルをUnity Catalogに登録する外部テーブルを作成するには、外部テーブルをUnity Catalogにアップグレードするをご覧ください。

  4. 新規テーブルにアクセスできるアカウントレベルのユーザー、グループにアクセスを許可します。Manage access to data | Databricks on AWSをご覧ください。

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

  6. 本のテーブルを削除する前にアクセス権を剥奪し、関連するクエリー、ワークロードを再度実行することで依存関係をテストします。

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

このサンプルでは、クラウドストレージにある背後のデータをコピーすることなしに、Hiveメタストアの外部テーブルをUnity Catalogにアップグレードする方法を説明します。

  1. 元のテーブルのCREATE TABLE文とLOCATIONを取得します。プレースホルダーの値を置き換えます。

    • <old_schema>: 元のテーブルのスキーマ
    • <old_table>: 元のテーブル名
    SQL
    SHOW CREATE TABLE <old_catalog>.<old_schema>.<old_table>;
    

    この手順の後半で外部格納場所(external location)を作成するためにLOCATIONを使用し、Unity Cataloに新規テーブルを作成するためにCREATE TABLE文を使用します。

  2. 元のテーブルのデータ格納場所からUnity Catalogが読み取りを行い、新規テーブルのためにその場所に書き込みを継続できるように認証を行うIAMロールを含むストレージクレディンシャルを作成します。

  3. 作成したストレージクレディンシャルと、クラウドテナント上のデータへのパスを参照する外部格納場所を作成します。

  4. 元のテーブルのCREATE文をノートブックかDatabricks SQLのエディタに貼り付けます。

    • 元のスキーマ、テーブル名を新たなカタログ、スキーマ、テーブル名に置き換えます。
    • 元のテーブルと同じデータフォーマットをUSING句に追加します。
    • 元のテーブルに対するクラウドストレージパスをLOCATION句に追加します。
    SQL
    CREATE TABLE <new_catalog>.<new_schema>.<new_table>
    (<column definitions from old table>)
    USING <format_from_old_table>
    LOCATION 's3://<bucket_path>';
    

    コマンドを実行します。テーブルはUnity Catalogに登録されますが、データファイルは移動されません。全く同じデータをUnity Catalogと元のテーブルで利用することができます。

  5. 新しいテーブルを使用するようにワークロードを変更し、元のテーブルを削除します。
    外部テーブルの削除は、クラウドテナント上のデータファイルを変更しないので、ワークロードをアップロードした際に元のテーブルを削除しても安全です。

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

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

注意
お使いのビューが他のビューを参照している場合には、先にそれらのビューをアップグレードしてください。

ビューをアップグレードした後は、ビューに対するアクセスをアカウントレベルのユーザー、グループに許可してください。

元のビューを削除する前にアクセス権を剥奪し、関連するクエリー、ワークロードを再度実行することで依存関係をテストします。

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?