remote_query 表值函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

重要

此功能目前以公共预览版提供。

返回在远程数据库引擎上执行的查询的表格结果。

remote_query 使用 连接凭据从远程系统提取数据。 该函数接受一组连接器选项,因此除了查询选项之外,还有其他选项。

此函数需要命名参数调用

Syntax

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

Arguments

  • connectionName

    必需的STRING 字面量,用于引用 Unity Catalog 的连接名称。 如果连接名称不存在,Databricks 会引发 CONNECTION_NOT_FOUND

    支持以下连接:

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

    如果不支持 CONNECTION_TYPE_NOT_SUPPORTED_FOR_REMOTE_QUERY_FUNCTION,则会引发错误。

  • connectorOptionKey

    连接器选项密钥,它是区分大小写的标识符。 每个连接类型都有相应的必需选项(与 SQL 数据库的连接需要 querytable 选项,而 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