Oracle 連接器

Oracle 連接器允許在外部 Oracle 資料庫中查詢和建立表格。這可以用於在不同的系統(如 Oracle 和 Hive)之間,或在兩個不同的 Oracle 實例之間合併資料。

設定

若要設定 Oracle 連接器,請在 etc/catalog 中建立一個目錄屬性檔案,例如,命名為 oracle.properties,以將 Oracle 連接器掛載為 oracle 目錄。建立檔案並包含以下內容,並根據您的設定適當取代連線屬性

connector.name=oracle
# The correct syntax of the connection-url varies by Oracle version and
# configuration. The following example URL connects to an Oracle SID named
# "orcl".
# In some situations, the connection-url has to include the user and password.
# example: connection-url=jdbc:oracle:thin:user/password@example.net:1521:orcl
#
connection-url=jdbc:oracle:thin:@example.net:1521:orcl
connection-user=root
connection-password=secret

connection-url 定義連線資訊和要傳遞給 JDBC 驅動程式的參數。Oracle 連接器使用 Oracle JDBC Thin 驅動程式,並且 URL 的語法可能因您的 Oracle 設定而異。例如,如果您連線到 Oracle SID 或 Oracle 服務名稱,則連線 URL 會有所不同。請參閱 Oracle 資料庫 JDBC 驅動程式文件以取得更多資訊。

connection-userconnection-password 通常是必要的,並決定連線的使用者憑證,通常是服務使用者。

多個 Oracle 伺服器

您可以擁有任意數量的目錄,因此如果您有其他 Oracle 伺服器,只需將另一個屬性檔案新增至 etc/catalog,並使用不同的名稱(確保它以 .properties 結尾)。例如,如果您將屬性檔案命名為 sales.properties,Presto 將使用設定的連接器建立名為 sales 的目錄。

一般設定屬性

屬性名稱

描述

預設

user-credential-name

extraCredentials 屬性的名稱,其值是 JDBC 驅動程式的使用者名稱。請參閱 參數參考中的 extraCredentials

password-credential-name

extraCredentials 屬性的名稱,其值是 JDBC 驅動程式的使用者密碼。請參閱 參數參考中的 extraCredentials

case-insensitive-name-matching

不區分大小寫地比對資料集和表格名稱。

false

case-insensitive-name-matching.cache-ttl

快取遠端資料集和表格名稱的持續時間。設定為 0ms 以停用快取。

1m

查詢 Oracle

Oracle 連接器為每個 Oracle _資料庫_ 提供一個結構描述。您可以執行 SHOW SCHEMAS 來檢視可用的 Oracle 資料庫

SHOW SCHEMAS FROM oracle;

如果您有一個名為 web 的 Oracle 資料庫,您可以執行 SHOW TABLES 來檢視此資料庫中的表格

SHOW TABLES FROM oracle.web;

您可以使用以下任一方式,檢視 web 資料庫中 clicks 表格中的欄位清單

DESCRIBE oracle.web.clicks;
SHOW COLUMNS FROM oracle.web.clicks;

最後,您可以存取 web 資料庫中的 clicks 表格

SELECT * FROM oracle.web.clicks;

如果您為您的目錄屬性檔案使用了不同的名稱,請在上述範例中使用該目錄名稱而不是 oracle

Oracle 連接器限制

以下 SQL 陳述式尚不支援