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/[email protected]: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 语句尚不支持