Partager via


Fonction table (TVF) remote_query

S’applique à :case cochée oui Databricks SQL case cochée oui Databricks Runtime

Important

Cette fonctionnalité est disponible en préversion publique.

Retourne le résultat tabulaire de la requête exécutée sur le moteur de base de données distant.

remote_query récupère des données à partir de systèmes distants à l’aide d’informations d’identification à partir d’une connexion. La fonction accepte un ensemble d’options de connecteur, en plus des options de requête.

Cette fonction nécessite un appel de paramètre nommé.

Syntaxe

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

Arguments

  • connectionName

    Littéral obligatoire qui fait référence au STRING catalogue Unity nom de la connexion. Si le nom de connexion n’existe pas, Databricks déclenche CONNECTION_NOT_FOUND.

    Les connexions suivantes sont prises en charge :

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

    Si la connexion n’est pas prise en charge, CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION est déclenché.

  • connectorOptionKey

    Clé d’option de connecteur qui est un identificateur sensible à la casse. Chaque type de connexion a des options obligatoires correspondantes (les connexions aux bases de données SQL nécessitent query ou table option, tandis que les bases de données NoSQL nécessitent collection une option) et des options de configuration facultatives supplémentaires (par exemple, MySQL, PostgreSQL, SQLServer et d’autres connexions de type JDBC prennent en charge fetchSize la configuration de la taille des lots récupérés). Si une clé n’est pas prise en charge PARAMETER_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION est déclenchée.

  • connectorOptionValue

    Expression constante représentant la valeur de l’option du connecteur.

Retours

Retourne une table. Le schéma de sortie dépend de la requête ou des tables analysées sur un système distant.

Remarques

Cette fonction ne peut pas être utilisée dans les requêtes de diffusion en continu (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