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
    • JDBC
    • 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í možnost query nebo table, zatímco NoSQL databáze vyžadují možnost collection) a další volitelné možnosti konfigurace (např. MySQL, PostgreSQL, SQLServer a další připojení typu JDBC podporují fetchSize, které konfigurují 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.

Běžné chybové podmínky

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