Sdílet prostřednictvím


remote_query tabulková hodnotová funkce

Platí pro:označeno jako ano Databricks SQL označeno jako ano Databricks Runtime

Důležité

Tato funkce je ve verzi Public Preview.

Vrátí tabulkový výsledek dotazu spuštěného ve vzdáleném databázovém stroji.

remote_query Načítá data ze vzdálených systémů pomocí přihlašovacích údajů z připojení. Funkce přijímá sadu možností konektoru, včetně možnosti dotazování.

Tato funkce vyžaduje vyvolání pojmenovaného parametru.

Syntaxe

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

Arguments

  • connectionName

    Povinný STRING literál, který odkazuje na název připojení katalogu Unity. Pokud název připojení neexistuje, databricks vyvolá CONNECTION_NOT_FOUND.

    Podporují se následující připojení:

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

    Pokud připojení není podporováno CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION , je vyvolána.

  • connectorOptionKey

    Klíč možnosti konektoru, což je identifikátor rozlišující malá a velká písmena. Každý typ připojení má odpovídající povinné možnosti (připojení k databázím SQL vyžadují query nebo table možnost, zatímco databáze NoSQL vyžadují collection možnost) a další volitelné možnosti konfigurace (např. MySQL, PostgreSQL, SQLServer a další podpora fetchSize připojení typu JDBC, která konfiguruje velikost načtených dávek). Pokud není klíč podporován PARAMETER_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION, je vyvolána výjimka.

  • connectorOptionValue

    Konstantní výraz představující hodnotu možnosti spojnice.

Návraty

Vrátí tabulku. Výstupní schéma závisí na dotazu nebo na tabulkách, které se naskenují ve vzdáleném systému.

Poznámky

Není možné použít tuto funkci v dotazech pro streamování (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