次の方法で共有


既定のカタログを管理する

この記事では、既定の Unity カタログ カタログについて説明し、既定として使用するカタログを決定する方法と、その変更方法について説明します。

Unity カタログの既定のカタログは何ですか?

既定のカタログは、Unity Catalog に対して有効になっているワークスペースごとに構成されます。 既定のカタログを使うと、カタログを指定せずにデータ操作を実行できます。 データ操作を実行するときに、最上位レベルのカタログ名を省略すると、既定のカタログが使われます。

ワークスペース管理者は、管理者設定 UI を使って既定のカタログを表示または切り替えることができます。 Spark 構成を使ってクラスターの既定のカタログを設定することもできます。

カタログを指定しないコマンド (たとえば GRANT CREATE TABLE ON SCHEMA myschema TO mygroup) は、カタログに対して次の順序で評価されます。

  1. USE CATALOG ステートメントまたは JDBC 設定を使ってセッションにカタログが設定されていますか?
  2. Spark 構成 spark.databricks.sql.initial.catalog.namespace はクラスターに設定されていますか?
  3. クラスターに設定されたワークスペースの既定のカタログはありますか?

Unity Catalog が有効な場合の既定のカタログ構成

ワークスペース用に最初に構成される既定のカタログは、Unity Catalog に対してワークスペースがどのように有効にされたかによって異なります。

  • Unity Catalog に対して有効にされた一部のワークスペースには、"ワークスペース カタログ" が既定のカタログとして設定されました。Unity Catalog の自動有効化」を参照してください。
  • 他のすべてのワークスペースには、hive_metastore カタログが既定のカタログとして設定されました。

Hive メタストアから既存のワークスペース内の Unity カタログに移行する場合は、通常、既定のカタログとして hive_metastore を使用して、Hive メタストアを参照する既存のコードに影響を与えないようにするのが理にかなっています。

既定のカタログを変更する

ワークスペース管理者は、ワークスペースの既定のカタログを変更できます。 コンピューティング リソースを作成または編集するアクセス許可を持つすべてのユーザーは、コンピューティング リソースに別の既定のカタログを設定できます。

警告

既定のカタログを変更すると、それに依存する既存のデータ操作が中断される可能性があります。

ワークスペースに別の既定のカタログを構成するには:

  1. ワークスペース管理者としてワークスペースにログインします。
  2. ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから [管理者設定] を選択します。
  3. [詳細設定] タブをクリックします。
  4. [ワークスペースの既定のカタログ] 行にカタログ名を入力し、[保存] をクリックします。

変更を有効にするには、SQL ウェアハウスとクラスターを再起動します。 新規および再起動されたすべての SQL ウェアハウスとクラスターは、このカタログをワークスペースの既定値として使います。

また、特定のクラスターで次の Spark 構成を設定すると、そのクラスターの既定のカタログをオーバーライドすることもできます。 この方法は、SQL ウェアハウスでは使用できません。

spark.databricks.sql.initial.catalog.name

手順については、「Spark の構成」を参照してください。

現在の既定のカタログを表示する

ワークスペースの現在の既定のカタログを取得するには、ノートブックまたは SQL エディター クエリで SQL ステートメントを使います。 ワークスペース管理者は、管理者設定 UI を使って既定のカタログを取得することができます。

管理の設定

  1. ワークスペース管理者としてワークスペースにログインします。
  2. ワークスペースの上部バーでユーザー名をクリックし、ドロップダウンから [管理者設定] を選択します。
  3. [詳細設定] タブをクリックします。
  4. [ワークスペースの既定のカタログ] 行でカタログ名を確認します。

SQL

SQL ウェアハウスまたは Unity Catalog 準拠クラスター上で実行されているノートブックまたは SQL エディター クエリで次のコマンドを実行します。 セッションに USE CATALOG ステートメントまたは JDBC 設定が設定されていない場合、またはクラスターに spark.databricks.sql.initial.catalog.namespace 構成が設定されていない場合、ワークスペースの既定のカタログが返されます。

SELECT current_catalog();