?簡介?
? ? ? ?提供了 Doris 通過數據庫訪問的標準接口 (JDBC) 來訪問外部表,外部表省去了繁瑣的數據導入工作,讓 Doris 可以具有了訪問各式數據庫的能力,并借助 Doris 本身的 OLAP 的能力來解決外部表的數據分析問題:
- 支持各種數據源接入 Doris。
- 支持 Doris 與各種數據源中的表聯合查詢,進行更加復雜的分析操作。
官方文檔地址
JDBC 外表 - Apache Dorishttps://doris.apache.org/zh-CN/docs/1.2/lakehouse/external-table/jdbc
注意
推薦使用 JDBC Catalog 訪問 JDBC 外表,1.2.2 版本后將不再維護該功能。
創建外部資源
? ? ? ?一個外部資源數據庫,創建一個外部資源即可,該庫下的所有表都可以使用該資源。
-- 定義外部資源名稱,具有唯一性,不可重復
CREATE EXTERNAL RESOURCE jdbc_resource
-- 定義外部表數據庫鏈接信息
properties (
-- 類型,必填"type"="jdbc",
-- 外部數據庫用戶名"user"="admin",
-- 外部數據庫連接密碼"password"="password",
-- 外部數據庫連接信息"jdbc_url"="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl",
-- Doris數據庫,鏈接外部數據庫時使用的driver jar包,在fe、be節點的安裝目錄中都要存放。
-- 在 1.2.1 及之后的版本中,可以將 driver 放到 FE/BE 的 jdbc_drivers 目錄下,
-- Doris默認情況下,沒有jdbc_drivers 目錄,需要手動創建,之后包驅動包拷貝到該目錄下。"driver_url"="ojdbc8.jar",
-- 訪問外表數據庫的驅動包類名"driver_class"="oracle.jdbc.OracleDriver"
);
創建外部表
? ? ? ?創建外部表時,需要關聯對應的外部數據庫資源,即關聯第一步中創建的外部資源。
-- 創建外部表
CREATE EXTERNAL TABLE `gender_dict` (`id` int NOT NULL,`gender_code` varchar(32) NULL,`gender_name` varchar(64) NOT NULL,`gender_desc` varchar(255) NOT NULL
) ENGINE=JDBC
-- 外部表鏈接屬性,關聯該外部表需要關聯的外部數據庫鏈接資源
PROPERTIES (
-- 外部表數據來源,
-- 與第一行的CREATE EXTERNAL RESOURCE jdbc_resource 的外部資源名稱保持一致
"resource" = "jdbc_resource",
-- Doris中外部表對應的外部表的名稱,即:Oracle數據庫中的表名。
"table" = "gender_dict",
-- 外部表的數據庫來源,例如 mysql,postgresql,sqlserver,oracle等
"table_type"="oracle"
);