Поделиться через


remote_query таблично-значная функция

Область применения:Отмечено «Да» Databricks SQL Отмечено «Да» Databricks Runtime

Это важно

Эта функция доступна в общедоступной предварительной версии.

Возвращает табличный результат запроса, выполняемого на удаленном ядре СУБД.

remote_query извлекает данные из удаленных систем с помощью учетных данных из подключения. Функция принимает набор параметров соединителя, поэтому помимо запроса.

Для этой функции требуется вызов именованного параметра.

Синтаксис

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

Arguments

  • connectionName

    Обязательный STRING литерал, ссылающийся на имя подключения каталога Unity. Если имя подключения не существует, Databricks вызывает CONNECTION_NOT_FOUND.

    Поддерживаются следующие подключения:

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

    Если подключение не поддерживается, вызывается CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION.

  • connectorOptionKey

    Ключ параметра соединителя, который является идентификатором с учетом регистра. Каждый тип подключения имеет соответствующие обязательные параметры (подключения к базам данных SQL требуется query или table параметр, а для баз данных NoSQL требуется collection параметр) и дополнительные необязательные параметры конфигурации (например, MySQL, PostgreSQL, SQLServer и другие подключения JDBC, которые поддерживают fetchSize настройку размера пакетов, которые извлекаются). Если ключ не поддерживается, возникает PARAMETER_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION.

  • connectorOptionValue

    Константное выражение, представляющее значение параметра соединителя.

Возвраты

Возвращает таблицу. Схема вывода зависит от запроса или таблиц, которые сканируются в удаленной системе.

Примечания.

Эту функцию нельзя использовать в потоковых запросах (UNSUPPORTED_STREAMING_TABLE_VALUED_FUNCTION).

Примеры

-- 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
  • http_request - Подобным образом, так как он также использует учетные данные для подключения к Unity Catalog, чтобы отправлять HTTP-запросы к определенным API.
  • CREATE CONNECTION
  • ALTER CONNECTION
  • DROP CONNECTION