Delen via


remote_query functie met tabelwaarde

Van toepassing op:gemarkeerd als ja Databricks SQL gemarkeerd als ja Databricks Runtime

Belangrijk

Deze functie bevindt zich in openbare preview-versie.

Retourneert het tabellaire resultaat van de query die wordt uitgevoerd op de externe database-engine.

remote_query haalt gegevens van externe systemen op met behulp van referenties uit een verbinding. De functie accepteert een set connectoropties, dus naast de query.

Voor deze functie is aanroepen van benoemde parameters vereist.

Syntaxis

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

Arguments

  • connectionName

    Een verplichte STRING literal die verwijst naar de connection name in Unity Catalog. Als de verbindingsnaam niet bestaat, geeft Databricks een CONNECTION_NOT_FOUND foutmelding.

    De volgende verbindingen worden ondersteund:

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

    Als de verbinding niet wordt ondersteund, wordt er een fout CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION gegenereerd.

  • connectorOptionKey

    Een verbindingsoptie-sleutel die een hoofdlettergevoelige identificator is. Elk verbindingstype heeft overeenkomstige verplichte opties (verbindingen met SQL-databases vereisen query of table een optie, terwijl noSQL-databases optie vereisen collection ) en aanvullende optionele configuratieopties (bijvoorbeeld MySQL, PostgreSQL, SQLServer en andere JDBC-achtige verbindingen bieden ondersteuning fetchSize voor het configureren van de grootte van batches die worden opgehaald). Als een sleutel niet wordt ondersteund, wordt PARAMETER_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION gegenereerd.

  • connectorOptionValue

    Een constante expressie die de waarde van de connectoroptie vertegenwoordigt.

Retouren

Retourneert een tabel. Het uitvoerschema is afhankelijk van de query of de tabellen die worden gescand op een extern systeem.

Opmerkingen

Deze functie kan niet worden gebruikt in streaming query's (UNSUPPORTED_STREAMING_TABLE_VALUED_FUNCTION).

Voorbeelden

-- 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