Gerenciamento de listagens com SQL como consumidor – Exemplos

A seguir estão exemplos de tarefas comuns que os consumidores podem concluir programaticamente com comandos SQL:

Visualização das listagens disponíveis

Mostra as listagens disponíveis para o consumidor que executa o comando. Para obter mais informações sobre o comando SHOW AVAILABLELISTINGS, consulte SHOW AVAILABLE LISTINGS.

Descrição

Notas

Mostra as listagens disponíveis.

Use IS_SHARED_WITH_ME = TRUE para mostrar apenas as listagens compartilhadas privadamente com o consumidor que executa o comando. Use IS_IMPORTED = TRUE para mostrar somente as listagens importadas.

SHOW AVAILABLE LISTINGS
Copy

Descrição das listagens disponíveis

Após executar SHOW AVAILABLE LISTINGS para identificar as listagens disponíveis e os nomes das listagens globais, um consumidor pode executar DESCRIBE AVAILABLE LISTING para retornar descrições das colunas nas listagens disponíveis para ele. Para obter mais informações sobre o comando DESCRIBE AVAILABLELISTING, consulte DESCRIBE AVAILABLE LISTING.

Descrição

Notas

Descreva as colunas de listagem.

Use listing_global_name para identificar a listagem global específica a ser descrita. Quando a coluna is_ready_for_import é TRUE, os dados já estão presentes na região e podem ser importados pelo consumidor imediatamente.

DESCRIBE AVAILABLE LISTING < listing_global_name >
Copy

Solicitação de uma listagem e pesquisa automática da disponibilidade

Após executar SHOW AVAILABLE LISTINGS para identificar as listagens disponíveis, um consumidor pode usar o procedimento armazenado SYSTEM$REQUEST_LISTING_AND_WAIT para solicitar uma listagem e pesquisar automaticamente a disponibilidade. Um consumidor também pode usar esse procedimento armazenado quando a coluna is_ready_for_import for FALSE. Para obter mais informações sobre o procedimento armazenado SYSTEM$REQUEST_LISTING_AND_WAIT, consulte SYSTEM$REQUEST_LISTING_AND_WAIT.

Descrição

Notas

Solicite uma listagem específica e pesquise a disponibilidade.

<timeout_mins> especifica o período de espera para atendimento da listagem em minutos. O padrão é 240 minutos ou 4 horas.

Quando uma listagem solicitada se torna disponível ou já está disponível, a mensagem Success: Listing <listing_global_name> is ready to be imported é retornada.

Se o período de tempo limite for excedido, a mensagem Error: Timed out waiting for the listing to be available after <timeout_mins> min(s) será retornada.

Para solicitar uma listagem sem esperar o atendimento da listagem, insira 0 (zero) para o valor <timeout_mins>. Quando o valor é 0, a mensagem Success: Listing <listing_global_name> requested successfully, but not waiting to confirm fulfillment é retornada.

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

Criação de um banco de dados a partir de uma listagem

Após solicitar uma listagem, um consumidor pode usar o comando CREATE DATABASE … FROM LISTING … para criar um banco de dados a partir de uma listagem. Para obter mais informações sobre o comando CREATE DATABASE … FROM LISTING …, consulte CREATE DATABASE … FROM LISTING ….

Descrição

Notas

Criação de um banco de dados a partir de uma listagem.

<nome> especifica o identificador do banco de dados. Deve ser exclusivo para sua conta. O identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas. Por exemplo "My object". Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

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

Exemplo de ponta a ponta

O exemplo a seguir mostra como usar os comandos SQL descritos acima para gerenciar as listagens como consumidor. O exemplo pressupõe que o consumidor já tenha recebido acesso a uma listagem de dados da COVID-19 denominada GZ1MXZFTF1 e que a listagem esteja disponível na região do consumidor. O exemplo também pressupõe que o consumidor tenha recebido a função sysadmin, que é necessária para criar um banco de dados a partir de uma listagem.

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