kettle从入门到精通 第三十课 mysql 数据连接常用配置
1、我们平常用的最多的数据库就是mysql了,这里我以mysql为例说下数据库连接池配置。为啥要用连接池,因为数据库建立连接很费性能,所以就建立连接池(提前建立好一批连接)缓存起来提高性能。下图中mysql的设置参数,提前是需要把mysql的jar(如mysql-connector-java-8.0.20.jar) 放到kettle 文件夹中的lib目录里面。

连接名称:自定义名称
连接类型:MySQL
连接方式:Native(JDBC)
主机名称:msyql ip地址
数据库名称:database schema
端口号:数据库端口号,mysql默认是3306
用户名:数据库用户名
密码:数据库密码
Use Result Stream Cursor: USE RESULT 是一种在数据库和客户端之间处理结果集的特性。它通过使用游标(cursor)来将查询结果分块返回给客户端,而不是一次性加载整个结果集到内存中。这对于处理大量数据或结果集很大的情况非常有效,可以减少内存消耗,并允许按需处理结果集的每个分块。建议勾选。
2、高级配置,如下图所示。

支持布尔数据类型
关系型数据库不直接支持布尔数据类型,而是使用特定的数据类型来表示布尔值,比如在 MySQL 中使用的是 TINYINT(1)。当使用 Kettle 进行数据处理时,需要将布尔值从 Kettle 传递给数据库中的相关列,此时就需要确保数据库连接池能够正确地将布尔类型的值传递给数据库。如果选择了 “支持布尔数据类型”,那么在配置中插入布尔值,连接池会将布尔值转换为数据库支持的数据类型。比如,将布尔值 true 转换为 1,将布尔值 false 转换为 0,以便正确地与数据库进行交互。但如果选择了 “不支持布尔数据类型”,连接池会抛出错误或警告。
Supports the timestamp data type
时间戳数据类型用于存储日期和时间信息,并且在许多数据库中都有特定的数据类型来表示时间戳,例如 MySQL 中的 TIMESTAMP。
如果选择了 “支持时间戳数据类型”,那么在配置中插入的时间戳值会被连接池直接传递给数据库,并且可以正确处理和存储时间戳类型的数据。
标识符使用引号括起来
该选项用于指定在查询和操作数据库对象时,标识符(例如表名、列名等)是否需要使用引号来括起来。
标识符使用引号括起来是一种数据库特定的语法规则,它可以用来处理具有特殊字符或与数据库关键字相同的标识符。当标识符被括在引号中时,数据库会将其视为一个整体,而不是将其解释为关键字或其他特殊含义。
强制标识符使用小写字母
在进行数据库查询和操作时,是否强制将所有的标识符(比如表名、列名等)转换为小写字母进行处理。
在进行数据库查询和操作时,是否强制将所有的标识符(比如表名、列名等)转换为大写字母进行处理。
Preserve case of reserved words
执行数据库操作时,是否保留SQL语句中保留字的大小写。
如果选择了 “Preserve case of reserved words”,那么在执行查询和操作时,Kettle 将保留SQL语句中保留字(如SELECT、FROM、WHERE等)的大小写,不进行额外的转换。这样做可以确保在SQL语句中使用的保留字与数据库系统的预期大小写一致,避免由于大小写不一致而导致的语法错误。
默认模式名称,在没有其他模式名时使用
当执行数据库操作时,如果没有指定模式(也称为数据库架构)的名称,将会使用该选项指定的默认模式名称。
数据库系统中,模式是用于组织和管理数据库对象(如表、视图、存储过程等)的一种方式。不同的数据库系统在模式的实现和规范上可能会有所不同。
请输入连接成功后要执行的sql语句,用分号(;)隔开
这个选项允许你在成功建立数据库连接之后,自动执行一系列的 SQL 语句。这些 SQL 语句可以是任何合法的数据库操作语句,比如查询、更新、插入等。
这个功能通常用于在建立数据库连接后,需要进行一些初始化或准备工作的场景。例如,你可能希望在每次建立连接时都自动进行一些特定的查询或设置一些会话参数。通过配置这个选项,你可以在连接成功后自动执行这些 SQL 语句,而不需要在每次连接后手动执行。
3、选项配置,这里有一些常见的参数可供设置,可根据自己的要求进行设置,如下图所示。

characterEncoding
指定与数据库连接相关联的字符编码的选项,通过配置 “characterEncoding” 选项,你可以指定数据库连接所使用的字符编码。这对于确保正确地读取和写入包含非英文字符的数据非常重要。例如,如果你的数据库中存储了中文字符,那么应该选择相应的字符编码,比如 UTF-8,以确保正确地处理和存储这些字符。
rewriteBatchedStatements
用于指定是否启用批处理写入的选项。批处理写入是一种优化技术,用于在一次数据库操作中批量插入多条记录,从而减少与数据库的交互次数,提高写入性能。当启用 “rewriteBatchedStatements” 选项时,Kettle 在向数据库提交批处理写入时,会尝试重写相应的 SQL 语句,把多条插入操作合并成一条批量插入的语句,以减少通信开销和提升性能。
defaultFetchSize
用于指定默认的数据获取大小的选项。数据获取大小指的是每次从数据库中读取的记录数。当你执行查询操作时,数据库将会返回一个结果集,其中包含满足查询条件的所有记录。“defaultFetchSize” 选项允许你设置每次从结果集中获取的记录数,以控制内存和网络资源的使用。
useCursorFetch
用于指定是否启用游标获取的选项。当启用 “useCursorFetch” 选项时,Kettle 将会使用数据库游标来获取查询结果集,而不是一次性将整个结果集加载到内存中。这种方式可以减少内存的占用,特别是在处理大型结果集时,同时还可以提高查询性能,因为数据库不需要一次性返回所有结果,而是可以按需获取数据。
maxReconnects
maxReconnects 属性定义了最大重新连接的尝试次数。默认情况下,该属性的值为0,表示不进行重新连接尝试。如果将 maxReconnects 设置为正整数值(例如,maxReconnects=3),则当数据库连接断开时,Kettle将尝试重新连接数据库的次数,当达到最大尝试次数后仍然无法重新连接时,Kettle会放弃尝试并抛出错误。
autoReconnect
数据库连接池的 autoReconnect 属性用于指示是否在连接断开时自动尝试重新建立连接。当数据库连接断开时,设置 autoReconnect 为 true 会告诉连接池自动尝试重新建立连接,而不需要用户手动介入
nullCatalogMeansCurrent
该参数用于指示是否将连接的目录设置为当前目录。当该参数设置为true时,表示连接的目录将被视为当前目录,而当设置为false时,将不会将连接的目录视为当前目录。
"当前目录"是指在数据库中执行操作时所处的默认目录或架构。数据库中的表、视图等对象可以根据不同的目录进行组织和管理。当连接到数据库时,如果将连接的目录设置为当前目录,那么执行的操作将默认在当前目录下进行。
useSSL
该参数用于指示是否使用SSL(Secure Sockets Layer)加密协议来加密数据库连接。当该参数设置为true时,表示数据库连接将使用SSL进行加密,而当设置为false时,则表示不使用SSL加密。
serverTimezone
该参数用于指定数据库服务器所在的时区,作用是确保在数据库操作中正确处理和转换时间,以与数据库服务器所在的时区保持一致。如"Asia/Shanghai"。
useUnicode
Unicode是一种国际标准,它定义了字符的编码方式,包括了各种语言中的字符集。使用Unicode编码可以支持全球范围内的多种语言和字符集,包括非拉丁字母、特殊符号和表情符号等。
通过设置"useUnicode"参数为true,Kettle 9.3会使用Unicode编码来处理数据库连接中的字符数据。这意味着无论数据库中存储的是哪种语言的字符,都可以正确地进行存储、检索和处理,避免出现乱码或字符转换错误的问题。
failOverReadOnly
当数据库服务器发生故障或不可用时,连接池需要有相应的应对措施来继续提供服务。通过设置"failOverReadOnly"参数,可以控制连接池在故障发生时对只读操作的处理方式。
如果将"failOverReadOnly"参数设置为true,那么连接池在发生故障时只会将只读操作(如SELECT查询)重定向到备用节点或其他可用的数据库服务器上,而对写操作(如UPDATE、INSERT、DELETE)则会直接抛出异常或其他错误提示。这样可以在一定程度上保证只读操作的连续性,同时避免对写入操作造成的数据不一致性。
反之,如果将"failOverReadOnly"参数设置为false,那么连接池在发生故障时会将所有的操作都重定向到备用节点或其他可用的数据库服务器上,无论是只读操作还是写入操作。这样虽然可以在故障期间继续提供服务,但可能会对故障恢复后的数据一致性产生影响。
kettle从入门到精通 第三十课 mysql 数据连接常用配置的更多相关文章
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- SaltStack 入门到精通第三篇:Salt-Minion配置文件详解
SaltStack 入门到精通第三篇:Salt-Minion配置文件详解 作者:ArlenJ 发布日期:2014-06-09 17:52:16 ##### 主要配置设置 ##### 配置 默认值 ...
- GPU 编程入门到精通(三)之 第一个 GPU 程序
博主因为工作其中的须要.開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...
- NeHe OpenGL教程 第三十课:碰撞检测
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Hibernate从入门到精通(三)Hibernate配置文件
在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使 ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组
PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...
- Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)
1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...
- Apache入门 篇(二)之apache 2.2.x常用配置解析
一.httpd 2.2.x目录结构 Cnetos 6.10 YUM安装httpd 2.2.x # yum install -y httpd 程序环境 主配置文件: /etc/httpd/conf/ht ...
- Go 从入门到精通(三)字符串,时间,流程控制,函数
一.strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirn ...
- Spark入门到精通--(第十节)环境搭建(ZooKeeper和kafka搭建)
上一节搭建完了Hive,这一节我们来搭建ZooKeeper,主要是后面的kafka需要运行在上面. ZooKeeper下载和安装 下载ZooKeeper 3.4.5软件包,可以在百度网盘进行下载.链接 ...
随机推荐
- ASP.NET Core Web API下基于Keycloak的多租户用户授权的实现
在上文<Keycloak中授权的实现>中,以一个实际案例介绍了Keycloak中用户授权的设置方法.现在回顾一下这个案例: 服务供应商(Service Provider)发布/Weathe ...
- 阿里云基于全新 RocketMQ 5.0 内核的落地实践
简介: 本篇文章的核心就消息架构以及产品能力的云原生化,介绍了阿里云是如何基于全新的 RocketMQ 5.0 内核做出自己的判断和演进,以及如何适配越来越多的企业客户在技术和能力方面的诉求. 前言 ...
- MySQL 深潜 - MDL 锁的实现与获取机制
简介:本文将介绍在 MDL 系统中常用的数据结构及含义,然后从实现角度讨论 MDL 的获取机制与死锁检测,最后分享在实践中如何监控 MDL 状态. 作者 | 泊歌 来源 | 阿里技术公众号 一 背 ...
- Paillier半同态加密:原理、高效实现方法和应用
简介: <数据安全法>已于9月1日起正式实施,两个月后<个人信息保护法>也将开始施行,意味着数据安全和隐私保护方面的监管将会在年内陆续到位.在合规收紧大背景下,"数 ...
- M3U8下载器加嗅探浏览器
M3U8下载器太多了,随便一抓一大把,没什么新奇的. 下载地址: https://www.zhaimaojun.cn/P/%e8%a7%86%e9%a2%91%e7%bd%91%e7%ab%99%e5 ...
- 网络数据流分析工具TcpEngine V1.0.0教程-1
概述 目前主流的网络数据分析工具主要有两类,一类是http协议分析工具,如fiddler,这类工具擅长对字符串类型协议分析:另一类是原始网络数据包的监听分析,如Wireshark,这类工具擅长分析网络 ...
- C数据结构线性表:实现顺序表的增删改查&完整篇
文章目录 ①前言 顺序表结构体的定义 ②初始化顺序表 ③插入新的元素 插入的时候需要特别注意的几点 ④删除元素 第一个删除元素功能实现 第二个删除元素功能实现 对代码下面中**i- -**的说明(第二 ...
- JDK源码阅读-------自学笔记(二十一)(java.util.ArrayList详细版集合类)
一.前景提要 本人经历了IT行业的多种类型企业,外包/创业小公司/中型公司,一步步成长起来,现在可以给大家透露下为什么进大企业在IT行业是重要的: 在外包公司,你要做的就是对接别人写好的接口,然后按照 ...
- c语言在Linux中的使用
gcc版本升级 如何验证gcc正常使用,编译c以及运行 过程 要验证GCC(GNU Compiler Collection)是否正常使用,您可以按照以下步骤进行操作: 检查GCC是否安装:打开终端或命 ...
- Python:用Pandas输出格式化HTML并高亮
输出格式化的HTML 我们已知一个DataFrame记录了模型Model1.Model2在3个Epoch优化中的精度变化情况: frame = pd.DataFrame({"Model1&q ...