remote_query tabellvärdesfunktion

gäller för:markerad med ja Databricks SQL markerad med ja Databricks Runtime

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Returnerar tabellresultatet för frågan som körs på fjärrdatabasmotorn.

remote_query hämtar data från fjärrsystem med autentiseringsuppgifter från en anslutning. Funktionen tar emot en uppsättning anslutningsalternativ, förutom frågor.

Den här funktionen kräver namngivna parameteranrop.

Syntax

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

Arguments

  • connectionName

    En obligatorisk STRING literal som refererar till Unity Catalog-anslutningsnamnet. Om anslutningsnamnet inte finns genererar Databricks CONNECTION_NOT_FOUND.

    Följande anslutningar stöds:

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

    Om anslutningen inte stöds CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION aktiveras.

  • connectorOptionKey

    En nyckel för anslutningsalternativ som är en skiftlägeskänslig identifierare. Varje anslutningstyp har motsvarande obligatoriska alternativ (anslutningar till SQL-databaser kräver query eller table alternativ, medan NoSQL-databaser kräver collection alternativ) och ytterligare valfria konfigurationsalternativ (t.ex. MySQL, PostgreSQL, SQLServer och andra JDBC-liknande anslutningar fetchSize som konfigurerar storleken på batchar som hämtas). Om en nyckel inte stöds PARAMETER_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION utlöses.

  • connectorOptionValue

    Ett konstant uttryck som representerar alternativvärdet för anslutningsalternativet.

Retur

Returnerar en tabell. Utdataschemat är beroende av frågan eller tabellerna som genomsöks i ett fjärrsystem.

Noteringar

Den här funktionen kan inte användas i strömmande frågor (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