Presto学习(5)-Oracle连接

 由于公司的安规要求,不允许又第三方的聊天工具、云盘及笔记,导致有道云无法使用,故将有道云笔记整理发布在CSDN

Oracle Connector

Oracle数据库连接器允许在外部Oracle数据库中查询和创建表。这可用于在不同系统(如Oracle和Hive)之间或不同Oracle数据库实例之间连接数据。

默认情况下不安装此插件。如果您想了解有关获取和使用Presto与Oracle数据库的更多信息,请联系hello@starburstdata.com。

安装和配置

先决条件:

以下任何安装和配置方法都需要以下工件:

Oracle的JDBC驱动程序可以从Oracle的https://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.htm获得。

从Starburst获得的Oracle数据库连接器包

连接到Oracle DB的连接详细信息,以常规Presto连接器配置的形式(例如,名为oracle的Presto目录的oracle.properties)。文件应包含以下内容,替换适合您的设置的连接属性:

oracle.properties:

connector.name=oracle

connection-url=jdbc:oracle:thin:@HOST:PORT:SID

connection-user=USERNAME

connection-password=PASSWORD

使用专用脚本

从Starburst获取Oracle数据库连接器时,您会收到一个特殊的install.sh脚本,可以使用该脚本并进行修改以适应自定义环境。开箱即用的脚本遵循典型的Presto布局,简化了安装插件和在整个集群中配置连接器的过程。

该脚本假定它在运行它的目录中找到以下文件:

  1. Oracle JDBC驱动程序,从Oracle下载(ojdbc8.jar)。
  2. 从Starburst获得的Oracle数据库连接器包(例如presto-oracle-0.3.zip)。
  3. 连接到Oracle DB的连接详细信息,以常规Presto连接器配置(oracle.properties)的形式。

该脚本遵循Presto安装的标准目录布局,并做出以下假设:

  1. 运行脚本的节点具有无密码ssh登录到所有其他Presto节点。
  2. 用户具有sudo功能。
  3. Presto正在运行,可在localhost:8080上获得。
  4. Presto插件目录是/ usr / lib / presto / lib / plugin,插件名称是oracle下安装的。
  5. Presto目录目录是/ etc / presto / catalog。
  6. 将有一个Oracle目录(Presto Oracle Connector的实例),名称为oracle。

对于每个节点(包括其运行的节点),脚本按以下顺序执行其工作:

  1. 通过ssh发送文件,将它们放在/ tmp目录中。
  2. 安装插件,配置连接器。
  3. 从/ tmp清除文件。
  4. 重启Presto。

该脚本开箱即用于典型的Presto安装,但您可以随意修改脚本以适应您的特定集群环境和Presto设置。

手动插件安装

要手动安装Oracle数据库连接器,请使用以下说明。您需要安装Starsturst Distribution of Presto,Oracle数据库插件(presto-oracle.zip)和Oracle JDBC驱动程序(ojdbc8.jar)。

  1. 在Presto的插件目录中创建一个名为oracle的新目录。
  2. 将插件的文件解压缩到新目录中。
  3. 将Oracle JDBC驱动程序JAR添加到新目录。
  4. 在每个Presto群集节点上执行上述步骤。
  5. 在每个节点上重新启动Presto。

手动连接器配置(使用Presto-Admin)

在〜/ .prestoadmin / catalog中创建目录属性文件,并参考目录add以使用presto-admin添加目录。

多个Oracle数据库

如果要连接到多个Oracle数据库,请将另一个Oracle插件实例配置为单独的目录。

要添加另一个Oracle目录,只需使用不同的名称将另一个属性文件添加到〜/ .prestoadmin / catalog(确保它以.properties结尾)。例如,如果将属性文件命名为sales.properties,则Presto将创建名为sales的目录。

查询Oracle数据库

Oracle数据库连接器为每个Oracle数据库用户的架构提供架构。假设目录名称是oracle,您可以通过运行SHOW SCHEMAS来查看可用的模式:

SHOW SCHEMAS FROM oracle;

您可以使用以下任一方法查看Web架构中单击表中的列列表:

DESCRIBE oracle.web.clicks;

SHOW COLUMNS FROM oracle.web.clicks;

最后,您可以访问Web架构中的点击表:

SELECT * FROM oracle.web.clicks;

您在这些模式中的权限是在连接属性文件中配置的用户的权限。如果用户无权访问这些表,您将无法访问它们。

在Presto和Oracle之间映射数据类型

由于Presto和Oracle各自支持另一种不支持的类型,因此以下类型映射表适用。

Oracle-to-Presto类型映射

Presto支持选择以下Oracle数据库类型。该表显示了从Oracle到Presto数据类型的映射。

可能无法使用Oracle数据库连接器选择此表中未列出的任何Oracle类型,并且用户无法看到该类型。

Presto-to-Oracle类型映射

Presto支持在Oracle数据库中创建具有以下类型的表。该表显示了从Presto到Oracle数据类型的映射。

不能使用Oracle数据库连接器编写此表中未列出的任何Presto类型。

映射数字类型

除非在以下条件下,否则Oracle 将映射到Presto :NUMBER(p, s)DECIMAL(p, s)

  1. 没有为列指定精度(例如NUMBER或 NUMBER(*))。
  2. Scales)大于精度。
  3. 精度(p)大于38。
  4. 规模是负的并且之间的差值ps大于38。

满足任何这些条件的列将被忽略。

如果s是否定的,将被映射到。NUMBER(p, s)DECIMAL(p + s, 0)

映射日期时间类型

如果旧时间戳启用,DATE并且TIMESTAMP列(既没有时区)将被忽略。

选择小数秒精度(p)大于3 的时间戳会将小数秒截断(不是舍入)为三位数。

Oracle DATE值可以存储小时,分钟和秒,因此它们将映射到TIMESTAMPPresto中。

映射字符类型

Presto VARCHAR(n)对if 的映射不大于4000.更大或无界映射到。VARCHAR2(n CHAR)nVARCHARNCLOB

Presto CHAR(n)对if 的映射不大于2000.更大的映射到。CHAR(n CHAR)nCHARNCLOB

使用从值创建列将从列的初始值中删除尾随空格。将值插入现有列将保留尾随空格。例如:CREATE TABLE ASNCLOBCHARCHARNCLOB

报错,谷歌不到,还在解决中:

https://github.com/prestodb/presto/issues/6693

Presto必知必会_DataFlow范式的博客-CSDN博客

Oracle connector — Starburst Enterprise

https://my.oschina.net/yulongblog/blog/1509496

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值