Gérer les annonces avec SQL en tant que consommateur - exemples¶
Voici quelques exemples de tâches courantes que les consommateurs peuvent effectuer par programmation avec les commandes SQL :
Afficher les annonces disponibles¶
Affiche les annonces disponibles pour le consommateur exécutant la commande. Pour plus d’informations sur la commande SHOW AVAILABLE LISTINGS, consultez SHOW AVAILABLE LISTINGS.
Description |
Remarques |
---|---|
Afficher les annonces disponibles. |
Utiliser |
SHOW AVAILABLE LISTINGS
Décrire les annonces disponibles¶
Après avoir exécuté SHOW AVAILABLE LISTINGS pour identifier les annonces disponibles et les noms des annonces globales, un consommateur peut exécuter DESCRIBE AVAILABLE LISTING pour renvoyer les descriptions des colonnes dans les annonces qui leur sont accessibles. Pour plus d’informations sur la commande DESCRIBE AVAILABLE LISTING, consultez DESCRIBE AVAILABLE LISTING.
Description |
Remarques |
---|---|
Décrire les colonnes de l’annonce. |
Utiliser |
DESCRIBE AVAILABLE LISTING < listing_global_name >
Demander une annonce et interroger automatiquement la disponibilité¶
Après avoir exécuté SHOW AVAILABLE LISTINGS pour identifier les annonces disponibles, un consommateur peut utiliser la procédure stockée SYSTEM$REQUEST_LISTING_AND_WAIT
pour demander une annonce et interroger automatiquement la disponibilité. Un consommateur peut également utiliser cette procédure stockée lorsque la colonne is_ready_for_import
est FALSE
. Pour plus d’informations sur les procédures stockées SYSTEM$REQUEST_LISTING_AND_WAIT
, consultez SYSTEM$REQUEST_LISTING_AND_WAIT.
Description |
Remarques |
---|---|
Demander une annonce spécifique et interroger pour vérifier la disponibilité. |
Lorsqu’une annonce demandée devient disponible ou est déjà disponible, le message Si la période d’attente est dépassée, le message Pour demander une annonce sans attendre la réalisation de l’annonce, entrez 0 (zéro) pour la valeur |
CALL SYSTEM$REQUEST_LISTING_AND_WAIT( ' <listing_global_name> ' [ , <timeout_mins>. ] );
Créer une base de données à partir d’une annonce¶
Après avoir demandé une annonce, un consommateur peut utiliser la commande CREATE DATABASE … FROM LISTING … pour créer une base de données à partir d’une annonce. Pour plus d’informations sur la commande CREATE DATABASE … FROM LISTING … , consultez CREATE DATABASE … FROM LISTING ….
Description |
Remarques |
---|---|
Créer une base de données à partir d’une annonce. |
|
CREATE DATABASE <name> FROM LISTING '<listing_global_name>';
Exemple de bout en bout¶
L’exemple suivant montre comment utiliser les commandes SQL décrites ci-dessus pour gérer les listings en tant que consommateur. L’exemple suppose que le consommateur a déjà obtenu l’accès à un listing de données COVID-19 nommé GZ1MXZFTF1
et que ce listing est disponible dans la région du consommateur. L’exemple suppose également que le consommateur s’est vu accorder le rôle sysadmin
, qui est nécessaire pour créer une base de données à partir d’un listing.
-- 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;