消費者として SQL でリストを管理する - 例¶
以下は、コンシューマーが SQL コマンドを使用してプログラムで実行できる一般的なタスクの例です。
利用可能なリストを表示する¶
コマンドを実行しているコンシューマーが使用できるリストを表示します。SHOW AVAILABLE LISTINGS コマンドの詳細については、 SHOW AVAILABLE LISTINGS を参照してください。
説明 |
注意 |
---|---|
利用可能なリストを表示します。 |
コマンドを実行しているコンシューマーと非公開で共有されているリストのみを表示するには、 |
SHOW AVAILABLE LISTINGS
利用可能なリストについて説明する¶
コンシューマーは SHOW AVAILABLE LISTINGS を実行して利用可能なリストとグローバルリスト名を識別した後に、 DESCRIBE AVAILABLE LISTING を実行して利用可能なリストの列の説明を取得できます。DESCRIBE AVAILABLE LISTING コマンドの詳細については、 DESCRIBE AVAILABLE LISTING を参照してください。
説明 |
注意 |
---|---|
リストの列について説明します。 |
|
DESCRIBE AVAILABLE LISTING < listing_global_name >
リストをリクエストし、可用性を自動的にポーリングする¶
コンシューマーは SHOW AVAILABLE LISTINGS を実行して利用可能なリストを識別した後に、 SYSTEM$REQUEST_LISTING_AND_WAIT
ストアドプロシージャを使用してリストをリクエストし、可用性を自動的にポーリングすることができます。コンシューマーは、 is_ready_for_import
列が FALSE
である場合にも、このストアドプロシージャを使用できます。 SYSTEM$REQUEST_LISTING_AND_WAIT
ストアドプロシージャの詳細については、 SYSTEM$REQUEST_LISTING_AND_WAIT をご参照ください。
説明 |
注意 |
---|---|
リストをリクエストし、可用性をポーリングします。 |
リクエストされたリストが利用可能になるか、すでに利用可能な場合は、 タイムアウト時間を超えると、 リストのフルフィルメントを待たずにリストをリクエストするには、 |
CALL SYSTEM$REQUEST_LISTING_AND_WAIT( ' <listing_global_name> ' [ , <timeout_mins>. ] );
リストからデータベースを作成する¶
コンシューマーはリストをリクエストした後に、 CREATE DATABASE ... FROM LISTING ... コマンドを使用して、リストからデータベースを作成できます。CREATE DATABASE ... FROM LISTING ... コマンドの詳細については、 CREATE DATABASE ... FROM LISTING ... をご参照ください。
説明 |
注意 |
---|---|
リストからデータベースを作成する |
|
CREATE DATABASE <name> FROM LISTING '<listing_global_name>';
エンド・ツー・エンドの例¶
次の例では、上記の SQL コマンドを使用して、コンシューマーとしてリストを管理する方法を示します。この例では、コンシューマーが GZ1MXZFTF1
という名前の COVID-19 データのリストへのアクセスを既に付与されており、そのリストがコンシューマーのリージョンで利用可能 だと仮定しています。この例では、コンシューマーに sysadmin
ロールが付与されていることも想定しています。これは、リストからデータベースを作成するために必要です。
-- Switch to sysadmin role
USE ROLE sysadmin;
-- Show available listings with a filter for shared listings
-- Note that you can optionally filter for private shared listings using IS_SHARED_WITH_ME = TRUE
-- The example assumes that the response returns a listing with a listing_global_name of GZ1MXZFTF1
SHOW AVAILABLE LISTINGS;
-- Get the global name and title of listings and filter on the title
SELECT "global_name", "title"
FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
WHERE "is_imported" = false
AND "title" LIKE '%COVID-19%';
-- Request the listing returned in `SHOW AVAILABLE LISTINGS` and wait for completion
CALL SYSTEM$REQUEST_LISTING_AND_WAIT('GZ1MXZFTF1');
-- Accept legal terms for the listing. Email verification is required to create the database from listing GZ1MXZFTF1
CALL SYSTEM$ACCEPT_LEGAL_TERMS('DATA_EXCHANGE_LISTING', 'GZ1MXZFTF1');
-- Create database from the listing
CREATE DATABASE test_california_covid_import
FROM LISTING 'GZ1MXZFTF1';
-- Use the new database
USE DATABASE test_california_covid_import;
-- Query the 'COVID.CASES' table and limit the results to 100 rows
SELECT * FROM COVID.CASES LIMIT 100;