チュートリアル: Unity Catalog でテーブルを作成し、権限を付与する

この記事では、Unity Catalog でテーブルを作成し、特権を付与する簡単なチュートリアルを提供します。 これはユーザーを対象としていますが、Unity Catalog の管理を新たに担当する管理者にとっても興味深い場合があります。

すぐに開始するには、この記事の最初のセクションに直接進んでください。 最初に基本的な概念を理解したい場合は、「 Unity Catalog とは」を参照してください。

Unity Catalog の設定と組織の管理を担当する管理者の場合は、「 Unity Catalog の設定と管理」を参照してください。

始める前に

この記事で説明するタスクを実行するには、次のものが必要です。

カタログへのアクセスを確認する

この記事のチュートリアルを実行するには、Unity Catalog のカタログに対する USE CATALOG 特権と、そのカタログ内のdefaultスキーマに対する USE SCHEMACREATE TABLE の両方の特権が必要です。カタログは、Unity Catalog の 3 レベルの名前空間の最上位です catalog.schema.table

カタログにアクセスできるかどうかを確認するには、次の手順を実行します。

  1. ワークスペースにログインします。

  2. カタログ アイコン カタログ」 をクリックします

  3. 左側のウィンドウの [カタログ ] で、一覧表示するアクセス許可があるカタログを表示します。

    ワークスペースにちなんだ名前の ワークスペース カタログが表示される場合は、「 最初のテーブルを作成し、アクセス許可を管理する (ワークスペース カタログを含むワークスペースの場合)」を参照してください。 メイン カタログが表示される場合は最初のテーブルを作成し、アクセス許可を管理する (メイン カタログを含むワークスペースの場合) に移動します。

    他のカタログに対する適切なアクセス許可があるかどうかを確認するには、左側のウィンドウでカタログ名をクリックして詳細ウィンドウを開き、[ アクセス許可 ] タブを開いてアクセス許可を表示します。 カタログに USE CATALOG があり、カタログの既定のスキーマに USE SCHEMACREATE TABLE の両方がある場合は、チュートリアル「 最初のテーブルを作成し、アクセス許可を管理する (メイン カタログを含むワークスペースの場合)」を使用できます。

少なくとも 1 つのカタログに USE CATALOG がない場合は、アカウント管理者に割り当てを依頼してください。 また、カタログのdefaultスキーマに関するUSE SCHEMACREATE TABLEも求めます。

最初のテーブルを作成し、アクセス許可を管理する (ワークスペース カタログを含むワークスペースの場合)

ワークスペースで Unity Catalog が自動的に有効になっていて、ワークスペースにちなんで名付けられた ワークスペース カタログが含まれている場合は、このチュートリアルを使用します。 「カタログへのアクセスの確認」を参照してください。

Unity Catalog では、SQL または Databricks Explorer UI を使用して、テーブルへのアクセスを宣言によって定義できます。

この例では、ワークスペース カタログとdefault スキーマ (データベース) に department という名前のテーブルを作成するノートブックを実行します。このカタログとスキーマは、Unity Catalog に対して自動的に有効になったすべてのワークスペースに対して自動的に作成されます。

必要なアクセス許可: ワークスペース カタログに対するUSE CATALOG特権と、<workspace-catalog>.default スキーマに対するUSE SCHEMACREATE TABLEの両方。ワークスペースの作成時に、すべてのワークスペースユーザーにこれらの権限が付与されます。 この例を完了するには、実行時に付与する権限以外には必要ない。

  1. ノートブックを作成し 、Unity Catalog 準拠のクラスターまたは SQLウェアハウスにアタッチします。 「 はじめに」を参照してください。

    ノートブックの言語として SQL を選択します。

  2. 次のコマンドをノートブックに追加して実行します ( <workspace-catalog> はワークスペース カタログの名前です)。

    USE CATALOG <workspace-catalog>
    
    CREATE TABLE IF NOT EXISTS default.department
    (
       deptcode   INT,
       deptname  STRING,
       location  STRING
    );
    
    INSERT INTO default.department VALUES
       (10, 'FINANCE', 'EDINBURGH'),
       (20, 'SOFTWARE', 'PADDINGTON');
    

    注:

    ワークスペース カタログがワークスペースのデフォルト カタログとして設定されている場合、ワークスペース カタログはワークスペースのデフォルト カタログとして定義され、想定されるため、完全な 3 レベルの名前空間 (<workspace-catalog>.default.department) または USE CATALOG <catalog> ステートメントを指定する必要はありません。デフォルト・カタログ以外のカタログを参照する場合は、ステートメントでカタログを指定するか、 USE CATALOG <catalog> ステートメントで宣言する必要があります。

    これで、Unity Catalog にテーブルが作成されました。

  3. カタログエクスプローラーで新しいテーブルを検索します。

    サイドバーでカタログ アイコン [カタログ<workspace-name> ] をクリックしdefault 、ワークスペース カタログ ( ) と スキーマ ( テーブルがある)department を参照または検索します。

    カタログエクスプローラーを使用してワークスペースカタログ内のテーブルを検索する

    カタログエクスプローラーでデータを参照するために、稼働中のクラスターや SQLウェアハウスは必要ありません。

  4. テーブルに対する権限を付与します。

    元のテーブル作成者はテーブル の所有者であり、他のユーザーにテーブルの読み取りまたは書き込みのアクセス許可を付与できます。 所有権を譲渡することもできますが、ここでは行いません。

    カタログエクスプローラーのテーブルページで、「 パーミッション」(Permissions ) タブに移動し、「 付与」(Grant) をクリックします。

    [Grant on] ダイアログで、次の操作を行います。

    1. アクセス許可を付与するユーザーとグループを選択します。 この例では、 というグループを使用します data-consumers

    2. 付与する権限を選択します。 この例では、 SELECT (読み取り) 権限を割り当てて [Grant] をクリックします。

    Unity Catalog の特権とアクセス許可モデルの詳細については、「 Unity Catalog での特権の管理」を参照してください。

    また、Databricks ノートブックまたは Databricks SQL クエリーエディターで次の SQL ステートメントを使用して、これらのアクセス許可を付与することもできます。

    GRANT SELECT ON default.department TO `data-consumers`;
    

最初のテーブルを作成し、アクセス許可を管理する (メイン カタログを含むワークスペースの場合)

このチュートリアルは、 main カタログにアクセスできる場合に使用します。 「カタログへのアクセスの確認」を参照してください。

注:

または、このチュートリアルは、カタログに対するUSE CATALOGと、defaultスキーマに対するUSE SCHEMACREATE TABLEの両方に対するアクセス許可を持つ任意のカタログで使用できます。以下の例では、カタログ名を main に置き換えてください。

Unity Catalog では、SQL または Databricks Explorer UI を使用して、テーブルへのアクセスを宣言によって定義できます。

この例では、main カタログとdefault スキーマ (データベース) に department という名前のテーブルを作成するノートブックを実行します。このカタログとスキーマは、すべてのメタストアに対して自動的に作成されます。

また、同じタスクを実行する サンプルノートブック を実行することもできます。

必要な権限

このチュートリアルでは、main カタログに対する USE CATALOG 特権と、main.default スキーマに対する USE SCHEMACREATE TABLE の両方が必要です。

デフォルトでは、すべてのアカウントユーザーがmainUSE CATALOGdefaultUSE SCHEMAします。カタログ所有者に依頼して、デフォルト スキーマの CREATE TABLE を付与する必要がある場合があります。 メタストア管理者またはカタログ所有者は、Unity Catalog をサポートするノートブックで次のコマンドを使用して、自分自身または任意のユーザーまたはグループに CREATE TABLE 特権を付与できます。

GRANT CREATE TABLE ON SCHEMA main.default TO `<user or group>`;

チュートリアルの説明

  1. ノートブックを作成し 、Unity Catalog をサポートするクラスターにアタッチします。 「 はじめに」を参照してください。

    ノートブックの言語として SQL を選択します。

  2. 次のコマンドをノートブックに追加して実行します。

    CREATE TABLE IF NOT EXISTS main.default.department
    (
      deptcode   INT,
      deptname  STRING,
      location  STRING
    );
    
    INSERT INTO main.default.department VALUES
      (10, 'FINANCE', 'EDINBURGH'),
      (20, 'SOFTWARE', 'PADDINGTON');
    

    これで、Unity Catalog にテーブルが作成されました。

  3. カタログエクスプローラーで新しいテーブルを検索します。

    サイドバーでカタログ アイコン main[カタログ ] をクリックしdefault 、ブラウザー (または検索) を使用して、 カタログと スキーマ ( テーブルがある場所)department を見つけます。

    カタログエクスプローラーを使用してテーブルを検索する

    カタログエクスプローラーでデータを参照するために、稼働中のクラスターや SQLウェアハウスは必要ありません。

  4. テーブルに対する権限を付与します。

    元のテーブル作成者はテーブル の所有者であり、他のユーザーにテーブルの読み取りまたは書き込みのアクセス許可を付与できます。 所有権を譲渡することもできますが、ここでは行いません。

    カタログエクスプローラーのテーブルページで、「 パーミッション」(Permissions ) タブに移動し、「 付与」(Grant) をクリックします。

    [Grant on] ダイアログで、次の操作を行います。

    1. アクセス許可を付与するユーザーとグループを選択します。 この例では、 というグループを使用します data-consumers

    2. 付与する権限を選択します。 この例では、 SELECT 権限を割り当てて、「 付与」をクリックします。

    Unity Catalog の特権とアクセス許可モデルの詳細については、「 Unity Catalog での特権の管理」を参照してください。

    また、Databricks ノートブックまたは Databricks SQL クエリーエディターで次の SQL ステートメントを使用して、これらのアクセス許可を付与することもできます。

    GRANT SELECT ON main.default.department TO `data-consumers`;
    
  5. 以下のノートブックの例の 1 つを実行して、カタログとスキーマの作成、使用可能な特権の概要、サンプル クエリーなどを含む、より詳細なチュートリアルを確認してください。

ノートブックの例: 最初のカタログ、スキーマ、テーブルを作成する

次のノートブックの例を使用して、カタログ、スキーマ、テーブルを作成し、それぞれに対するアクセス許可を管理できます。

Python ノートブックを使用して Unity Catalog テーブルを作成および管理するCreate and manage a Unity Catalog table using Python notebook

ノートブックを新しいタブで開く

SQL ノートブックを使用して Unity Catalog テーブルを作成および管理するCreate and manage a Unity Catalog table using SQL notebook

ノートブックを新しいタブで開く