SQL を使用したリストの管理について

プロバイダーは、リストを使用して任意のSnowflakeリージョンのアカウントとデータ製品を共有できます。リストの詳細については、 リストについて をご参照ください。

プロバイダーは、 SQL コマンドを使用してリストを作成および管理し、特定のコンシューマーに提供できます。SQL を使用してリストを共有するには、プロバイダーは次のタスクを実行します。

注釈

プロバイダーは、有料、パーソナライズされたリスト、またはプライベートデータ交換のリストを提供できません。

SQL を使用してリストで作業するための前提条件

リストとアプリケーションの所有者ロール

リストを作成するときは、データまたはアプリケーションパッケージが含まれているアカウントから作成します。データ製品をリストに添付し、リストを公開するロールは、アプリケーションパッケージまたは共有を作成したロールと同じロールである必要があり、したがってアプリケーションパッケージまたは共有を所有しています。共有の OWNERSHIP 権限を譲渡することはできません。

別のロールを使用してリストを作成および管理する場合は、アプリケーションパッケージまたは共有を所有するロールにリストの MODIFY 権限を付与します。例:

共有またはアプリケーションパッケージの所有者ロール:

共有またはアプリケーションパッケージに対する OWNERSHIP 権限。リストに対する MODIFY 権限。

リストの所有者ロール:

リストに対する OWNERSHIP 権限。

CREATE DATA EXCHANGE LISTING グローバル権限。

プロバイダーアカウント内で、次のいずれかを使用してリストを作成および管理できます。

ACCOUNTADMIN:

ACCOUNTADMIN ロールを使用してリストの作成と管理を行う場合、 ORGADMIN ロールはまず 自動複製を設定する権限を委任する 必要があります。

カスタムロール:

カスタムロールを使用する場合、 ORGADMIN ロールはまず ACCOUNTADMIN ロールに 自動複製を設定する権限を委任 します。その後、関連する権限をカスタムロールに付与できます。

共有権限の付与の詳細については、 他のロールへの権限付与 をご参照ください。

リストマニフェストの定義

リストを作成するには、まずリストマニフェストを作成する必要があります。マニフェストは YAML(https://yaml.org/spec/)で記述され、プレフィックス、必須およびオプションのフィールドが含まれます。

たとえば、リスト用語を使用してシンプルなタイトル付きリストを作成するには、次のようなマニフェストを定義します。

title: A title for the listing.
subtitle: An optional subtitle.
description: A general description.
profile: Provider profile reference.
listing_terms: ...
targets: ...
Copy

各マニフェストには、さらに以下のようなセクションがあります。

auto_fulfillment: ...
Copy

また、 data_dictionarybusiness_needs など、オプションのフィールドも多数あります。

シンプルなマニフェストには次が含まれます。

title: "MyFirstListing"
subtitle: "Example listing"
description: "This is my first listing!"
listing_terms:
  type: "OFFLINE"
targets:
   accounts: ["Org1.Account1"]
Copy

詳細については、 リストマニフェスト参照 をご参照ください。

SQL を使用したリスト管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。

SQL を使用したリストの作成

リストを作成するには、 CREATE LISTING コマンドを使用して、リストを説明する YAML マニフェスト内に名前とリストの詳細をインラインで指定します。CREATE LISTING ... を使用して作成されたリストは自動的に公開されます。リストが作成されたら、 ALTER LISTING を使って変更することができます。これには非公開と公開のサポートが含まれています。

Snowsight とは異なり、SQL を使用してリストを作成する場合は、関連する共有が既に存在する必要があることに注意してください。

リストは、 説明済み表示済み公開済みと未公開削除済み である可能性があります。

注釈

SQL を使用したリストの作成は、概念的には プライベートリストを使用して、特定のコンシューマーとデータまたはアプリを共有します。 に似ています。SQL を使用してリストを作成する前に、 SnowsightProvider Studio を使用したリストの作成、表示、公開に慣れておく必要があります。詳細については、 プライベートリストを使用して、特定のコンシューマーとデータまたはアプリを共有します。 をご参照ください。

リストを作成する前に、 前提条件 をすべて完了していることを確認してください。

たとえば、「My first SQL listing」というタイトルで、共有 myshare から DRAFT リスト my1stlisting を作成したい場合、以下のコマンドを実行します。

CREATE EXTERNAL LISTING my1stlisting
SHARE myshare AS
$$
 title: "My first SQL listing"
 description: "This is my first listing"
 listing_terms:
   type: "OFFLINE"
 targets:
   accounts: ["Org1.Account1"]
$$ PUBLISH=FALSE REVIEW=FALSE;
Copy

注釈

リストはリストの NAME を使用して識別されます。リスト NAME は、最初にリストを作成する際に使用される識別子です。上記の例では、リスト名は MY1STLISTING です。タイトル、サブタイトル、その他のリストの特性は変更できますが、 NAME はyamlで新しい名前を指定しても変更できません。リスト名を変更するには、 ALTER LISTING ... RENAME TO を使用します。 ALTER LISTINGSHOW LISTINGSDESCRIBE LISTINGDROP LISTING などのコマンドはすべて、 NAME を使用してリストを識別します。リスト NAME は、タイトルでリストを識別する Snowsight には表示されません。

SQL を使用したリストの管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。

SQL を使用したリストの公開

ALTER LISTING ... PUBLISH および ALTER LISTING ... UNPUBLISH を使用して、リストの公開と公開解除を行うことができます。

Snowsight を使用したリストの公開についての詳細は、 リストの公開 をご参照ください。

CREATE LISTING を使用して作成されたリストは、自動的に公開されることに注意してください。

たとえば、以前に公開されていないリストを公開するには、以下のコマンドを実行します。

ALTER LISTING MY1STLISTING PUBLISH;
Copy

さらに、リストを削除する前に、リストを非公開にする必要があります。以前に公開されたリストを非公開にするには、次のようなコマンドを実行します。

ALTER LISTING MY1STLISTING UNPUBLISH;
Copy

SQL を使用したリストの管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。

SQL を使用したリストの定義の拡張

先ほどの例では、ターゲットや使用例が含まれていませんでした。 ALTER LISTING を使用して、リストの特性を変更できます。この例では、既存のリストを更新し、ターゲットと SQL の例を追加します。元の YAML マニフェストは、新しいコンテンツを含めるために拡張されていることに注意してください。

追加フィールドを含むようにリストを変更するには、次のようなコマンドを実行します。

ALTER LISTING MY1STLISTING AS
$$
   title: "My First SQL Listing"
   description: "This is my first listing"
   listing_terms:
     type: "OFFLINE"
   targets:
     accounts: ["Org1.Account1"]
   usage_examples:
     - title: "this is a test sql"
       description: "Simple example"
       query: "select *"
$$;
Copy

SQL を使用したリストの管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。

SQL を使用したリストの調査

テーブルや他の SQL 要素と同様に、リストも記述したり表示したりすることができます。 DESCRIBE LISTING はパラメーターとして単一のリスト名を取り、そのリストに関する詳細を提供します。 SHOW LISTINGS は、 LIKE フィルターを使用してリストのグループに関する情報を提供したり、フィルターが提供されていない場合は、指定されたアカウントによって作成されたすべてのリストに関する情報を提供することができます。

MY1STLISTING リストの詳細を表示するには、以下のようなコマンドを実行します。

SHOW LISTINGS LIKE 'MY1STLISTING';
Copy

自分のロールがアクセスできるすべてのリストを表示するには、以下のようなコマンドを実行します。

SHOW LISTINGS;
Copy

リスト MY1STLISTING を 説明 するには、次のようなコマンドを実行します。

DESC LISTING MY1STLISTING;
Copy

SQL を使用したリストの削除

リストを削除するには、まずリストを未公開にする必要があります。SQL を使用してリストを削除する前に、 Snowsight を使用してリストを削除することに慣れておく必要があります。 Snowsight を使用したリストの削除については、 プロバイダーとしてリストを削除 をご参照ください。

リストを未公開にするには、以下のようなコマンドを実行します。

ALTER LISTING MY1STLISTING UNPUBLISH;
Copy

リストを削除するには、以下のようなコマンドを実行します。

DROP LISTING IF EXISTS MY1STLISTING
Copy