デフォルトカタログの管理
この記事では、デフォルト Unity Catalog カタログについて紹介し、デフォルトとして使用するカタログを決定する方法と、それを変更する方法を示します。
Unity Catalog のデフォルトのカタログは何ですか?
デフォルト カタログは、 Unity Catalogが有効になっているワークスペースごとに構成されます。 デフォルトのカタログでは、カタログを指定せずにデータ操作を実行できます。 データ操作を実行するときに最上位のカタログ名を省略すると、デフォルトのカタログが想定されます。
ワークスペース管理者は、管理者設定 UI を使用してデフォルト カタログを表示または切り替えることができます。 Spark 構成を使用して、クラスターのデフォルト カタログを設定することもできます。
カタログを指定しないコマンド ( GRANT CREATE TABLE ON SCHEMA myschema TO mygroup
など) は、次の順序でカタログに対して評価されます。
- セッションのカタログは、
USE CATALOG
ステートメントまたは JDBC 設定を使用して設定されていますか? - Spark構成はクラスターで
spark.databricks.sql.initial.catalog.namespace
設定されていますか? - クラスター用にワークスペース デフォルト カタログが設定されていますか?
DLT のパイプライン構成は、ワークスペースのデフォルトを上書きするデフォルト カタログを設定します。
Unity Catalogが有効になっている場合のデフォルトカタログ構成
ワークスペースに対して最初に構成されたデフォルト カタログは、ワークスペースが Unity Catalogに対してどのように有効にされたかによって異なります。
- Unity Catalogが自動的に有効になった一部のワークスペースでは、 ワークスペース カタログ がデフォルト カタログとして設定されていました。「Unity Catalog の自動有効化」を参照してください。
- 他のすべてのワークスペースでは、
hive_metastore
カタログがデフォルト カタログとして設定されました。
Hive metastore から Unity Catalogに移行する場合は、デフォルトカタログを hive_metastore
に設定して、Hive metastoreを参照する既存のコードに影響を与えないようにすることができます。
デフォルトのカタログを変更する
ワークスペース管理者は、ワークスペースのデフォルト カタログを変更できます。 コンピュート リソースを作成または編集する権限を持つユーザーは、コンピュート リソースに別のデフォルト カタログを設定できます。
デフォルトのカタログを変更すると、それに依存する既存のデータ操作が中断される可能性があります。
ワークスペースに別のデフォルトカタログを設定するには:
- ワークスペース管理者としてワークスペースにログインします。
- ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから[ 管理設定 ] を選択します。
- 詳細設定 タブをクリックします。
- ワークスペース行 のデフォルト カタログ で、カタログ名を入力し、[ 保存 ] をクリックします。
SQLウェアハウスとクラスターを再起動して、変更を有効にします。ウェアハウスとクラスター SQL新規および再開されたすべてのカタログは、このカタログをワークスペースのデフォルトとして使用します。
また、特定のクラスターのデフォルト カタログをオーバーライドするには、クラスターで次の Spark 構成を設定します。 この方法は、 SQLウェアハウスでは使用できません。
spark.databricks.sql.initial.catalog.namespace
手順については、「 Spark の設定」を参照してください。
現在のデフォルトカタログを表示する
ワークスペースの現在のデフォルト カタログを取得するには、ノートブックまたはSQL Editor クエリで SQL ステートメントを使用できます。ワークスペース管理者は、管理者設定 UI を使用してデフォルト カタログを取得できます。
- Admin Settings
- SQL
- Log in to your workspace as a workspace admin.
- Click your username in the top bar of the workspace and select Admin Settings from the dropdown.
- Click the Advanced tab.
- On the Default catalog for the workspace row, view the catalog name.
Run the following command in a notebook or SQL Editor query that is running on a SQL warehouse or Unity Catalog-compliant cluster. The workspace default catalog is returned as long as no USE CATALOG
statement or JDBC setting has been set on the session, and as long as no spark.databricks.sql.initial.catalog.namespace
config is set for the cluster.
SELECT current_catalog();