功能介绍
新发布的 Byzer 2.2.2 提供了 Oracle Upsert 功能。Upsert 意思是当数据库表存在数据时 Insert , 否则 Update。举个例子,有表 table_1
c1 | c2 |
---|---|
1 | "a" |
Upsert 的 结果集为
c1 | c2 |
---|---|
1 | "a_updated" |
2 | "b" |
Upsert时,table_1 不包含 c1=2 的数据,Insert ; 包含 c1=1 的数据,则 Update.
使用方式
我们以 Linux 为例说明。
下载 Byzer-lang 2.2.2 & Byzer-notebook 1.1.1, 参考 Byzer-lang 安装文档 和 Byzer-notebook 安装文档
下载 Oracle JDBC 包,请根据 Oracle 版本选择适配的 JDBC 版本。并拷贝至 Byzer-lang 安装目录的 libs 子目录。
执行 Byzer-lang 安装目录
bin/start-local.sh
以启动 Byzer-lang .检查 byzer-notebook 安装目录
conf/notebook.properties
中notebook.mlsql.engine-url
是否指向 byzer-lang; 并确保conf/notebook.properties
配置的 MySQL 能联通。启动 Byzer-notebook。浏览器 打开
http://<byzer-notebook-ip>:9002
。conf/notebook.properties
配置项notebook.port=9002
。第一次登录时,填写用户名密码,再点击注册。再次登录即可。
新建一个 Notebook,开始写代码。
CONNECT jdbc WHERE
url="jdbc:oracle:thin:<username>/<password>@<oracle_host>:<port>/orclpdb1.localdomain"
and driver="oracle.jdbc.driver.OracleDriver"
AS db_1;
SELECT 1 c1 ,"1_update" c2
UNION ALL
SELECT 2 c1, "2" c2 AS records;
SAVE APPEND records as jdbc.`db_1.zjc_11` WHERE idCol="c1";
APPEND
表明 Upsert Oracle;且 idCol = "c1" 表明 Upsert 时 比较 zjc_11
表 c1
字段。
如果你碰到问题,欢迎加入 slack 提问。