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 数据连接常用配置的更多相关文章

  1. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总

     PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...

  2. SaltStack 入门到精通第三篇:Salt-Minion配置文件详解

    SaltStack 入门到精通第三篇:Salt-Minion配置文件详解 作者:ArlenJ  发布日期:2014-06-09 17:52:16   ##### 主要配置设置 ##### 配置 默认值 ...

  3. GPU 编程入门到精通(三)之 第一个 GPU 程序

    博主因为工作其中的须要.開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...

  4. NeHe OpenGL教程 第三十课:碰撞检测

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. Hibernate从入门到精通(三)Hibernate配置文件

    在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使 ...

  6. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组

     PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...

  7. Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...

  8. 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 ...

  9. Go 从入门到精通(三)字符串,时间,流程控制,函数

    一.strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirn ...

  10. Spark入门到精通--(第十节)环境搭建(ZooKeeper和kafka搭建)

    上一节搭建完了Hive,这一节我们来搭建ZooKeeper,主要是后面的kafka需要运行在上面. ZooKeeper下载和安装 下载ZooKeeper 3.4.5软件包,可以在百度网盘进行下载.链接 ...

随机推荐

  1. 剑指offer39(Java)-数组中出现次数超过一半的数字(简单)

    题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, ...

  2. 力扣784(java)-字母大小写全排列(中等)

    题目: 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串. 返回 所有可能得到的字符串集合 .以 任意顺序 返回输出. 示例 1: 输入:s = " ...

  3. ECharts海量数据渲染解决卡顿的4种方式

    场景 周五进行需求评审的时候: 出现了一个图表,本身一个图表本没有什么稀奇的: 可是产品经理在图表的上的备注,让我觉得这个事情并不简单: 那个图表的时间跨度可以是月,年,而且时间间隔很短: 这让我意识 ...

  4. Arthas 初探--安装初步适用

    简介: 由于在项目中遇到一种情况,某段代码在进行单元测试和在 tomcat 容器中运行的性能相差数百倍,因此需要分析在不同环境下某个方法执行的具体时间,从而确定问题.Arthas 可以做到无侵入的监控 ...

  5. 供应链商品域DDD实践

    简介: DDD是一套方法论,实践能否成功,不仅仅是个技术问题,更是执行贯彻实施的问题.本文将就DDD的基本概念和DDD的实施进行分享. 作者 | 侧帽来源 | 阿里技术公众号 前言 供应链商品域DDD ...

  6. SpringBoot项目实现日志打印SQL明细(包括SQL语句和参数)几种方式

    前言 我们在开发项目的时候,都会连接数据库.有时候遇到问题需要根据我们编写的SQL进行分析,但如果不进行一些开发或者配置的话,这些SQL是不会打印到控制台的,它们默认是隐藏的.下面给大家介绍几种常用的 ...

  7. 迁移 dotnet 6 提示必须将目标平台设置为 Windows 平台

    我在迁移一个古老的项目为 .NET 6 框架,但是 VS 提示 error NETSDK1136 如果使用 Windows 窗体或 WPF,或者引用使用 Windows 窗体或 WPF 的项目或包,则 ...

  8. Ubuntu VNC 远程桌面及常见问题

    一.Ubuntu 远程桌面开启 在ubuntu 设置中打开远程桌面 **注意:如果没有共享桌面选项也不要谎,只需要安装 vino 即可 sudo apt update sudo apt install ...

  9. 后端每日一题 2:DNS 解析过程

    本文首发于公众号:腐烂的橘子 本文梗概: DNS 是什么,有什么作用 一条 DNS 记录是什么样的 DNS 域名解析原理 DNS 服务器如何抵御攻击 DNS 是什么,有什么作用 DNS(Domain ...

  10. vue引入一个单独的数据文件

    1.新建一个address.js的文件 2.文件内const citys = { "北京市":         ["东城区","西城区",& ...