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 IS_SHARED_WITH_ME = TRUE pour afficher uniquement les annonces partagées en privé avec le consommateur exécutant la commande. Utiliser IS_IMPORTED = TRUE pour afficher uniquement les annonces importées.

SHOW AVAILABLE LISTINGS
Copy

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 listing_global_name pour identifier l’annonce globale spécifique à décrire. Lorsque la colonne is_ready_for_import est TRUE, les données sont déjà présentes dans la région et peuvent être importées immédiatement par le consommateur.

DESCRIBE AVAILABLE LISTING < listing_global_name >
Copy

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é.

<timeout_mins> spécifie la période d’attente d’exécution de l’annonce en minutes. La valeur par défaut est 240 minutes ou 4 heures.

Lorsqu’une annonce demandée devient disponible ou est déjà disponible, le message Success: Listing <listing_global_name> is ready to be imported est renvoyé.

Si la période d’attente est dépassée, le message Error: Timed out waiting for the listing to be available after <timeout_mins> min(s) est renvoyé.

Pour demander une annonce sans attendre la réalisation de l’annonce, entrez 0 (zéro) pour la valeur <timeout_mins>. Lorsque la valeur est 0, le message Success: Listing <listing_global_name> requested successfully, but not waiting to confirm fulfillment est renvoyé.

CALL SYSTEM$REQUEST_LISTING_AND_WAIT( ' <listing_global_name> ' [ , <timeout_mins>. ] );
Copy

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.

<name> spécifie l’identificateur de la base de données. Il doit être unique pour votre compte. L’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles. Par exemple, "My object". Les identificateurs entre guillemets doubles sont également sensibles à la casse.

CREATE DATABASE <name> FROM LISTING '<listing_global_name>';
Copy

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;
Copy