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: ...
各マニフェストには、さらに以下のようなセクションがあります。
auto_fulfillment: ...
また、 data_dictionary
、 business_needs
など、オプションのフィールドも多数あります。
シンプルなマニフェストには次が含まれます。
title: "MyFirstListing"
subtitle: "Example listing"
description: "This is my first listing!"
listing_terms:
type: "OFFLINE"
targets:
accounts: ["Org1.Account1"]
詳細については、 リストマニフェスト参照 をご参照ください。
SQL を使用したリスト管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。
SQL を使用したリストの作成¶
リストを作成するには、 CREATE LISTING コマンドを使用して、リストを説明する YAML マニフェスト内に名前とリストの詳細をインラインで指定します。CREATE LISTING ... を使用して作成されたリストは自動的に公開されます。リストが作成されたら、 ALTER LISTING を使って変更することができます。これには非公開と公開のサポートが含まれています。
Snowsight とは異なり、SQL を使用してリストを作成する場合は、関連する共有が既に存在する必要があることに注意してください。
リストは、 説明済み、 表示済み、 公開済みと未公開、 削除済み である可能性があります。
注釈
SQL を使用したリストの作成は、概念的には プライベートリストを使用して、特定のコンシューマーとデータまたはアプリを共有します。 に似ています。SQL を使用してリストを作成する前に、 Snowsight と Provider 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;
注釈
リストはリストの NAME を使用して識別されます。リスト NAME は、最初にリストを作成する際に使用される識別子です。上記の例では、リスト名は MY1STLISTING です。タイトル、サブタイトル、その他のリストの特性は変更できますが、 NAME はyamlで新しい名前を指定しても変更できません。リスト名を変更するには、 ALTER LISTING ... RENAME TO を使用します。 ALTER LISTING、 SHOW LISTINGS、 DESCRIBE LISTING、 DROP LISTING などのコマンドはすべて、 NAME を使用してリストを識別します。リスト NAME は、タイトルでリストを識別する Snowsight には表示されません。
SQL を使用したリストの管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。
SQL を使用したリストの公開¶
ALTER LISTING ... PUBLISH および ALTER LISTING ... UNPUBLISH を使用して、リストの公開と公開解除を行うことができます。
Snowsight を使用したリストの公開についての詳細は、 リストの公開 をご参照ください。
CREATE LISTING を使用して作成されたリストは、自動的に公開されることに注意してください。
たとえば、以前に公開されていないリストを公開するには、以下のコマンドを実行します。
ALTER LISTING MY1STLISTING PUBLISH;
さらに、リストを削除する前に、リストを非公開にする必要があります。以前に公開されたリストを非公開にするには、次のようなコマンドを実行します。
ALTER LISTING MY1STLISTING UNPUBLISH;
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 *"
$$;
SQL を使用したリストの管理に関連するその他の例と使用例については、 SQL をプロバイダーとしてリスティングを管理する - 例 をご参照ください。
SQL を使用したリストの調査¶
テーブルや他の SQL 要素と同様に、リストも記述したり表示したりすることができます。 DESCRIBE LISTING はパラメーターとして単一のリスト名を取り、そのリストに関する詳細を提供します。 SHOW LISTINGS は、 LIKE
フィルターを使用してリストのグループに関する情報を提供したり、フィルターが提供されていない場合は、指定されたアカウントによって作成されたすべてのリストに関する情報を提供することができます。
MY1STLISTING リストの詳細を表示するには、以下のようなコマンドを実行します。
SHOW LISTINGS LIKE 'MY1STLISTING';
自分のロールがアクセスできるすべてのリストを表示するには、以下のようなコマンドを実行します。
SHOW LISTINGS;
リスト MY1STLISTING を 説明 するには、次のようなコマンドを実行します。
DESC LISTING MY1STLISTING;
SQL を使用したリストの削除¶
リストを削除するには、まずリストを未公開にする必要があります。SQL を使用してリストを削除する前に、 Snowsight を使用してリストを削除することに慣れておく必要があります。 Snowsight を使用したリストの削除については、 プロバイダーとしてリストを削除 をご参照ください。
リストを未公開にするには、以下のようなコマンドを実行します。
ALTER LISTING MY1STLISTING UNPUBLISH;
リストを削除するには、以下のようなコマンドを実行します。
DROP LISTING IF EXISTS MY1STLISTING