適用於:
Databricks SQL
Databricks Runtime
這很重要
這項功能目前處於 公開預覽版。
傳回在遠端資料庫引擎上執行之查詢的表格式結果。
remote_query 使用 連線中的認證從遠端系統擷取資料。
函式接受一組連接器選項,但不限於查詢。
此函式 需要具名參數調用。
語法
remote_query(connectionName [, connectorOptionKey => connectorOptionValue ] [...])
Arguments
-
Unity Catalog
STRING的必須常值。 如果連線名稱不存在,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
相關功能
- http_request - 類似,因為它也會使用 Unity 目錄連線認證將 HTTP 要求傳送至特定 API
- CREATE CONNECTION
- ALTER CONNECTION
- DROP CONNECTION