由于公司的安规要求,不允许又第三方的聊天工具、云盘及笔记,导致有道云无法使用,故将有道云笔记整理发布在CSDN
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获得。
连接到Oracle DB的连接详细信息,以常规Presto连接器配置的形式(例如,名为oracle的Presto目录的oracle.properties)。文件应包含以下内容,替换适合您的设置的连接属性:
connector.name=oracle
connection-url=jdbc:oracle:thin:@HOST:PORT:SID
connection-user=USERNAME
从Starburst获取Oracle数据库连接器时,您会收到一个特殊的install.sh脚本,可以使用该脚本并进行修改以适应自定义环境。开箱即用的脚本遵循典型的Presto布局,简化了安装插件和在整个集群中配置连接器的过程。
- Oracle JDBC驱动程序,从Oracle下载(ojdbc8.jar)。
- 从Starburst获得的Oracle数据库连接器包(例如presto-oracle-0.3.zip)。
- 连接到Oracle DB的连接详细信息,以常规Presto连接器配置(oracle.properties)的形式。
- 运行脚本的节点具有无密码ssh登录到所有其他Presto节点。
- 用户具有sudo功能。
- Presto正在运行,可在localhost:8080上获得。
- Presto插件目录是/ usr / lib / presto / lib / plugin,插件名称是oracle下安装的。
- Presto目录目录是/ etc / presto / catalog。
- 将有一个Oracle目录(Presto Oracle Connector的实例),名称为oracle。
对于每个节点(包括其运行的节点),脚本按以下顺序执行其工作:
该脚本开箱即用于典型的Presto安装,但您可以随意修改脚本以适应您的特定集群环境和Presto设置。
要手动安装Oracle数据库连接器,请使用以下说明。您需要安装Starsturst Distribution of Presto,Oracle数据库插件(presto-oracle.zip)和Oracle JDBC驱动程序(ojdbc8.jar)。
- 在Presto的插件目录中创建一个名为oracle的新目录。
- 将插件的文件解压缩到新目录中。
- 将Oracle JDBC驱动程序JAR添加到新目录。
- 在每个Presto群集节点上执行上述步骤。
- 在每个节点上重新启动Presto。
在〜/ .prestoadmin / catalog中创建目录属性文件,并参考目录add以使用presto-admin添加目录。
如果要连接到多个Oracle数据库,请将另一个Oracle插件实例配置为单独的目录。
要添加另一个Oracle目录,只需使用不同的名称将另一个属性文件添加到〜/ .prestoadmin / catalog(确保它以.properties结尾)。例如,如果将属性文件命名为sales.properties,则Presto将创建名为sales的目录。
Oracle数据库连接器为每个Oracle数据库用户的架构提供架构。假设目录名称是oracle,您可以通过运行SHOW SCHEMAS来查看可用的模式:
DESCRIBE oracle.web.clicks;
SHOW COLUMNS FROM oracle.web.clicks;
SELECT * FROM oracle.web.clicks;
您在这些模式中的权限是在连接属性文件中配置的用户的权限。如果用户无权访问这些表,您将无法访问它们。
由于Presto和Oracle各自支持另一种不支持的类型,因此以下类型映射表适用。
Presto支持选择以下Oracle数据库类型。该表显示了从Oracle到Presto数据类型的映射。
可能无法使用Oracle数据库连接器选择此表中未列出的任何Oracle类型,并且用户无法看到该类型。
Presto支持在Oracle数据库中创建具有以下类型的表。该表显示了从Presto到Oracle数据类型的映射。
不能使用Oracle数据库连接器编写此表中未列出的任何Presto类型。
除非在以下条件下,否则Oracle 将映射到Presto :NUMBER(p, s)DECIMAL(p, s)
如果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博客