データアクセス構成の有効化

この記事では、Databricksの管理者がUIを使用してあらゆるSQLウェアハウスに対して実行するデータアクセス構成について説明します。

注:

ワークスペースでUnity Catalogが有効になっている場合は、この記事の手順を実行する必要はありません。Unity CatalogはデフォルトでSQLウェアハウスをサポートします。

Databricks では、クラウドオブジェクトストレージに接続するために、インスタンスの代わりに Unity Catalog ボリュームまたは外部ロケーションを使用することをお勧めします。 Unity Catalog は、アカウント内の複数のワークスペースにわたるデータ アクセスを管理および監査するための中央の場所を提供することで、データのセキュリティとガバナンスを簡素化します。 Unity Catalogは何ですか?」を参照してください。および外部ロケーションの使用に関する推奨事項

REST APIを使用してすべてのSQLウェアハウスを構成するには、SQLウェアハウスのAPI を参照してください。

重要

これらの設定を変更すると、実行中のすべてのSQLウェアハウスが再起動されます。

データへのアクセスを有効にする方法の一般的な概要については、「 アクセス制御リスト」を参照してください。

要件

  • SQLウェアハウスの設定を構成するには、Databricksワークスペースの管理者権限が必要となります。

[データアクセス構成] テキストボックスのエントリを直接編集することもできます。

Google Cloud サービス アカウントを構成する

Google Cloud Storage (GCS) にアクセスするときに Google Cloud サービス アカウントを使用するようにすべてのウェアハウスを構成するには:

  1. Google Cloud プラットフォームで、Google Cloud Storage 資産にアクセスするために必要な基盤となる Google Cloud プラットフォーム サービスに対する権限を持つサービス アカウントを作成します。

  2. 管理者設定ページに移動します。

  3. 「コンピュート」タブをクリックします。

  4. SQLウェアハウスの横にある「管理」をクリックします。

  5. [Google サービス アカウント]フィールドに、すべての SQL ウェアハウスを起動するために ID が使用されるサービス アカウントの電子メール アドレスを入力します。

    これらのウェアハウスで実行されるすべてのクエリは、Google Cloud プラットフォームでこのサービス アカウントに付与された権限を範囲とする、基盤となる Google Cloud プラットフォーム サービスにアクセスできます。

  6. 保存」をクリックします。

SQLウェアハウスのデータアクセス権のプロパティを構成する

  1. ワークスペースの上部バーにあるユーザー名をクリックし、ドロップダウンから「設定」を選択します。

  2. 「コンピュート」タブをクリックします。

  3. SQLウェアハウスの横にある「管理」をクリックします。

  4. [データ アクセス構成]テキスト ボックスで、メタストア プロパティを含むキーと値のペアを指定します。

    重要

    シークレット値を Spark に公開せずに Spark 設定プロパティをシークレットの値に設定するには、値を {{secrets/<secret-scope>/<secret-name>}}に設定します。 <secret-scope>をシークレットスコープに、<secret-name>をシークレット名に置き換えます。値は {{secrets/ で始まり、 }}で終わる必要があります。 この構文の詳細については、「 シークレットの管理」を参照してください

  5. 保存」をクリックします。

Databricks Terraform プロバイダーdatabricks_sql_global_configを使用してデータ アクセス プロパティを構成することもできます。

サポート対象となるプロパティ

  • * が末尾にあるエントリの場合、その接頭辞内のすべてのプロパティがサポートされます。

    たとえば、 spark.sql.hive.metastore.* は、 spark.sql.hive.metastore.jarsspark.sql.hive.metastore.version の両方がサポートされていることを示し、その他のプロパティは spark.sql.hive.metastoreで始まることを示します。

  • 値に機密情報が含まれるプロパティについては、secrets/<secret-scope>/<secret-name> の構文を使用して機密情報をシークレットに保存し、プロパティの値をシークレット名に設定することができます。

SQLウェアハウスでは次のプロパティがサポートされています。

  • spark.databricks.hive.metastore.glueCatalog.enabled

  • spark.sql.hive.metastore.*

  • spark.sql.warehouse.dir

  • spark.hadoop.datanucleus.*

  • spark.hadoop.fs.*

  • spark.hadoop.hive.*

  • spark.hadoop.javax.jdo.option.*

  • spark.hive.*

これらのプロパティの設定方法の詳細については、「外部Hive metastoreを参照してください。