Partilhar via


remote_query função que retorna um valor de tabela

Aplica-se a:seleção marcada sim Databricks SQL seleção marcada sim Databricks Runtime

Importante

Este recurso está no Public Preview.

Retorna o resultado tabular da consulta executada no mecanismo de banco de dados remoto.

remote_query Busca dados de sistemas remotos usando credenciais de uma conexão. A função aceita um conjunto de opções de conector, além da consulta.

Esta função requer invocação de parâmetro nomeado.

Sintaxe

remote_query(connectionName [, connectorOptionKey => connectorOptionValue ] [...])

Arguments

  • connectionName

    Um literal obrigatório STRING que faz referência ao nome de conexão do Unity Catalog. Se o nome da conexão não existir, o Databricks gerará CONNECTION_NOT_FOUND.

    As seguintes conexões são suportadas:

    • BigQuery
    • MySQL
    • Oracle
    • PostgreSQL
    • Redshift
    • Snowflake
    • SQL Server
    • Teradata

    Se a conexão não for suportada CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION é gerada.

  • connectorOptionKey

    Uma chave de opção de conector que é um identificador que diferencia maiúsculas de minúsculas. Cada tipo de conexão tem opções obrigatórias correspondentes (conexões com bancos de dados SQL exigem query ou table opção, enquanto bancos de dados NoSQL exigem collection opção) e opções de configuração opcionais adicionais (por exemplo, MySQL, PostgreSQL, SQLServer e outras conexões JDBC suportam fetchSize que configura o tamanho dos lotes que estão sendo buscados). Se uma chave não for suportada, é gerada uma exceção PARAMETER_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION.

  • connectorOptionValue

    Uma expressão constante que representa o valor da opção do conector.

Devoluções

Retorna uma tabela. O esquema de saída depende da consulta ou das tabelas que estão sendo exploradas num sistema remoto.

Observações

Essa função não pode ser usada em consultas de streaming (UNSUPPORTED_STREAMING_TABLE_VALUED_FUNCTION).

Examples

-- Simple example with MySQL connection
> SELECT a, b FROM remote_query('mysql_connection', query => 'SELECT * FROM mysql_database.mysql_table WHERE sin(b) = 0.5');
  a        b
  angle_1  30

-- Simple example with MongoDB (NoSQL) connection
> SELECT a, b FROM remote_query('mongo_connection', collection => 'collection1', pipeline => '[{''$match'': {''b'': 30}}]');
  a        b
  angle_1  30

-- Connection name does not exist
> SELECT * FROM remote_query('non_existent_uc_connection', query => '');
  Error: CONNECTION_NOT_FOUND

-- Connection type is not supported
> SELECT * FROM remote_query('google_drive_connection', query => '');
  Error: CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION