Oracle Connector

Oracle コネクタを使用すると、外部 Oracle データベースでテーブルのクエリと作成を行うことができます。これは、Oracle と Hive のような異なるシステム間、または 2 つの異なる 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 Database JDBC ドライバのドキュメント を参照してください。

connection-userconnection-password は通常必須であり、接続のユーザー資格情報(多くの場合、サービスユーザー)を決定します。

複数のOracleサーバー

必要な数のカタログを持つことができます。そのため、追加の Oracle サーバーがある場合は、別の名前(.properties で終わるようにする)で etc/catalog に別のプロパティファイルを追加するだけです。たとえば、プロパティファイルに sales.properties という名前を付けると、Presto は設定されたコネクタを使用して sales という名前のカタログを作成します。

一般的な設定プロパティ

プロパティ名

説明

デフォルト

user-credential-name

JDBC ドライバのユーザー名を値とする extraCredentials プロパティの名前。 パラメータリファレンスextraCredentials を参照してください。

password-credential-name

JDBC ドライバのユーザーパスワードを値とする extraCredentials プロパティの名前。 パラメータリファレンスextraCredentials を参照してください。

case-insensitive-name-matching

データセット名とテーブル名を大文字と小文字を区別せずに照合します。

false

case-insensitive-name-matching.cache-ttl

リモートデータセット名とテーブル名をキャッシュする期間。キャッシュを無効にするには 0ms に設定します。

1m

Oracle のクエリ

Oracle コネクタは、すべての Oracle *データベース* のスキーマを提供します。利用可能な Oracle データベースを確認するには、SHOW SCHEMAS を実行します。

SHOW SCHEMAS FROM oracle;

web という名前の Oracle データベースがある場合、このデータベース内のテーブルを表示するには、SHOW TABLES FROM web を実行します。

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 ステートメントはまだサポートされていません。