LoginSignup
0
1

More than 1 year has passed since last update.

Databricksクイックスタートガイドのコンテンツです。

お恥ずかしながら、これまで自分でUnity Catalogをセットアップしたことがなかったのでした。

こちらを見ながら実際にセットアップします。

自動化ツールを使うこともできますが、ここではマニュアルでセットアップしてみます。Terraformの手順も後でまとめたいところです。

前提条件

警告
DatabricksアカウントIDやアカウントオーナーのメールアドレスは厳重に管理してください。第三者に公開しないでください。

AWSの設定

Unity Catalogを使い始めるには、AWSで以下の設定を行う必要があります。

  • IAMロール: Databricksコントロールプレーンからのアクセスを許可するために必要となるIAMロールです。
  • S3バケット: Unity Catalogのルートストレージロケーションとなります。Unity Catalogのマネージドテーブルが格納されます。
  • IAMポリシー: 上記IAMロールがS3バケットにアクセスできるようにポリシーを定義します。

IAMロールの作成

  1. Databricksのデプロイに使用したアカウントを用いて、AWSマネジメントコンソールにログインします。

  2. IAMに移動してロールにアクセスし、ロールを作成をクリックします。

  3. 信頼されたエンティティタイプAWSのサービスユースケースEC2を選択します。
    Screen Shot 2022-12-19 at 13.40.41.png

  4. 許可の追加では次へをクリックします。

  5. ロール名を入力してロールを作成をクリックします。

  6. ロール一覧に戻るので、作成したロールを検索してアクセスします。

  7. 信頼関係タブをクリックして 信頼ポリシーを編集をクリックします。

  8. 以下の内容を信頼ポリシーに貼り付けます。

    JSON
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
             "AWS": [
               "arn:aws:iam::414351767826:role/unity-catalog-prod-UCMasterRole-14S5ZJVKOTYTL",
               "arn:aws:iam::<AWSアカウントID>:role/<作成したIAMロール>"
             ]
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "sts:ExternalId": "<DatabricksアカウントID>"
            }
          }
        }
      ]
    }
    

    以下はご自身の環境の値で置き換えてください。

  9. ポリシーを更新をクリックします。

  10. ARNをコピーしておきます。

S3バケットの作成

  1. S3に移動して、バケットの作成をクリックします。
  2. バケット名を指定してバケットの作成をクリックします。バケット名にピリオドは含めないでください。
  3. バケット名をコピーしておきます。

IAMポリシーの作成

  1. 再びIAMに移動し、ポリシーにアクセスします。

  2. ポリシーを作成をクリックします。

  3. JSONタブを開き、以下の内容を貼り付けます。

    JSON
    {
     "Version": "2012-10-17",
     "Statement": [
         {
             "Action": [
                 "s3:GetObject",
                 "s3:PutObject",
                 "s3:DeleteObject",
                 "s3:ListBucket",
                 "s3:GetBucketLocation",
                 "s3:GetLifecycleConfiguration",
                 "s3:PutLifecycleConfiguration"
             ],
             "Resource": [
                 "arn:aws:s3:::<作成したS3バケット>/*",
                 "arn:aws:s3:::<作成したS3バケット>"
             ],
             "Effect": "Allow"
         },
         {
             "Action": [
                 "sts:AssumeRole"
             ],
             "Resource": [
                 "arn:aws:iam::<AWSアカウントID>:role/<作成したIAMロール>"
             ],
             "Effect": "Allow"
         }
       ]
    }
    

    以下はご自身の環境の値で置き換えてください。

    • <作成したS3バケット>: 上のステップで作成したS3バケット
    • <AWSアカウントID>: ご自身のAWSアカウントID
    • <作成したIAMロール>: 上のステップで作成したIAMロール
  4. 次のステップ: タグをクリックします。

  5. 次のステップ: 確認をクリックします。

  6. 名前にポリシー名を入力しポリシーの作成をクリックします。

  7. ポリシー一覧に移動するので、作成したポリシーにアクセスします。

  8. ポリシーの使用状況タブを開き、アタッチをクリックします。

  9. 上のステップで作成したIAMロールを検索し、チェックボックスを付けてポリシーのアタッチをクリックします。これでIAMロールにポリシーがアタッチされます。
    Screen Shot 2022-12-19 at 14.55.55.png

Databricksの設定

これで、AWSの準備が整ったので以下の情報を用いて、Unity Catalogをセットアップします。

  • IAMロールのARN
  • S3バケット名

メタストアの作成

  1. アカウントコンソールにログインし、サイドメニューのデータをクリックします。なお、アカウントコンソールも日本語対応しています。
    Screen Shot 2022-12-19 at 13.13.30.png
  2. メタストア一覧が表示されますので、メタストアを作成するをクリックします。
    Screen Shot 2022-12-19 at 14.58.47.png
  3. メタストアの名前を名前リージョン(ワークスペースが存在するリージョンを選択してください。メタストアはリージョンごとに1つ作成できます)、S3バケットパス上のステップで作成したS3バケット、IAMロールARN上のステップで作成したIAMロールのARNを入力します。
    Screen Shot 2022-12-19 at 15.03.26.png
  4. 作成をクリックします。

ワークスペースへのアタッチ

DatabricksワークスペースでUnity Catalogを利用するには、ワークスペースにメタストアをアタッチする必要があります。

  1. 対象のワークスペースにチェックをつけて割り当てるをクリックします。
    Screen Shot 2022-12-19 at 15.05.42.png
  2. 確認メッセージが表示されるので有効化をクリックします。
    Screen Shot 2022-12-19 at 13.55.46.png
  3. 完了メッセージが表示されるので閉じるをクリックします。
    Screen Shot 2022-12-19 at 13.56.16.png

これでUnity Catalogがセットアップされました。

動作確認

  1. メタストアにアタッチしたワークスペースにログインします。
  2. サイドメニューからデータにアクセスするとデータエクスプローラが表示されます。
  3. これまでHiveメタストアで管理されていたデータベースはhive_metastore配下に格納されています。
  4. その他、デフォルトのカタログmainが作成されています。
    Screen Shot 2022-12-19 at 15.09.14.png

メタストア管理権限をグループに移譲

初期状態ではメタストアを作成したユーザーがメタストア管理者となります。運営上、個人のユーザーを管理者にするよりは、管理者用グループを作成してグループにメタストア管理権限を割り当てる方が望ましいです。

上のマニュアルに沿ってグループにメタストア管理権限を割り当てます。

  1. アカウントコンソールでユーザー管理にアクセスし、グループを追加をクリックします。
    Screen Shot 2022-12-19 at 15.40.29.png
  2. metastore adminsといったグループ名をつけます。
    Screen Shot 2022-12-19 at 15.40.42.png
  3. グループのメンバーを追加します。
    Screen Shot 2022-12-19 at 15.41.05.png
    Screen Shot 2022-12-19 at 15.41.19.png
  4. アカウントコンソールのデータに移動して、メタストア管理者の右に表示されている編集をクリックします。
    Screen Shot 2022-12-19 at 15.41.29.png
  5. 上で作成したグループを選択します。
    Screen Shot 2022-12-19 at 15.42.33.png
  6. これでメタストア管理権限がグループに割り当てられました。このグループにユーザーを追加することで、メタストア管理権限を付与することができるようになりました。
    Screen Shot 2022-12-19 at 15.42.41.png

次のステップ

チュートリアルを試してみてください。

Databricks 無料トライアル

Databricks 無料トライアル

0
1
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
1