kettle组件-查询

1:数据库查询   
   数据库连接:所要连接的数据库
   模式名称:一般选取用户模式
   表名:所要查询的表名
   是否使用缓存:指定是否使用数据库缓存查询结果。
   缓存大小:指定缓存的大小。
   从表中加载所有数据:选中该项,缓存将不被利用。
 查询所需的关键字:
    表字段:表示所选中的表中的字段。
    比较操作符:对选中字段进行判断。
    字段1/2:流中的其他(表字段中可选的字段在该选项中不能选择)字段。
 查询表返回的值:
    查询表返回的字段,类型,可以通过新名称对返回字段该名称。
   排序:指定排序方式。
 “表输入”和“数据库查询”不同点:
   表输入:从数据库表里读取信息。
   数据库查询:使用字段值在数据库里查询值。
   数据库查询这个组件一般是用在我们已经使用表输入查询到一条或几条记录后再查询其他表数据,在查询到主表的某条记录后
   自动返回子表中匹配的记录。
   使用数据库查询的查询原理是按照左外连接方式进行查询,查询表为驱动表。
 “流查询”和“数据库查询”的区别:
   流查询步骤只能进行等值查询,数据库查询步骤可以进行非等值查询。
   流查询在查询之前把数据加载到内存里,数据库查询可以选择是否把数据加载到内存。
   进行等值查询时,数据库查询步骤如果选中了全部缓存,性能接近但仍不如流查询的性能。
   进行等值查询时,数据库查询步骤如果没选中全部缓存,性能较低,每次查询都要向数据库发送一个sql请求。
   进行非等值查询时,数据库查询即使选中了全部缓存,性能也较低,没有索引在内存中通过循环查询。
   数据库查询的缓存适用于多次查询返回同一个查询结果的情况(集中式),多次查询返回不同的查询结果(分散式),使用缓存反而会降低性能。
数据库缓存层:
   常见的缓存形式 :
    1.文件缓存 (为了避免I/O开销,尽量使用内存缓存)
    2.内存缓存
 为什么要使用缓存:
    缓存数据是为了让客户端很少甚至不访问数据库服务器进行的数据查询,高并发下,能最大程度降低对数据库服务器的访问压力

一般的数据请求:

  用户请求->数据查询->连接数据库服务器并查询数据->将数据缓存起来(缓存方式: HTML , 内存 , [JSON, 序列化数据不做考虑])->显示给客户端

  用户再次请求或者新用户访问->数据查询->直接从缓存中获取数据->显示给客户端
 缓存需要考虑的方面
    1.缓存方式的选择: 对I/O开销比较小的方式, 比如缓存到内存
    2.缓存场景的选择: 一些不经常修改的数据适合做缓存
    3. 缓存数据的实时性:
    4. 缓存数据的稳定性:
 Mysql的查询缓存
    1.启用mysql查询缓存:

  (1) query_cache_type : 0代表使用查询缓存 1表示始终使用查询缓存 2表示按需使用查询缓存

  (2) 如果选择1也就是始终缓存时,如果某一条sql语句不想使用缓存,可以这样

    select SQL_NO_CACHE * from student where condition;

   (3) 如果选择2也就是按需使用查询缓存时,可以这样

      select SQL_CACHE *from student where condition;

  2. query_cache_size 配置项

   默认情况下,query_cache_size为0,也就是表示为查询缓存预留的内存为0,表示无法使用查询缓存

  (1) 可以通过 set GLOBAL query_cache_size= 来临时设置

   (2) 也可以在配置文件中,直接设置query_cache_size的大小

  3. 查询缓存可以看做是SQL文本和查询结果的映射
     第二次查询的sql和第一次查询的sql完全相同,则会使用缓存

  4. 我们可以通过show status like ‘Qcache_hits‘; 命令来查看命中次数

  5. 在mysql数据缓存中,除了sql语句改变会使缓存无法使用,当表的结构或数据发生改变时,查询缓存中的数据也不再有效

    总结:如果写的频率较高,mysql查询缓存意义就不大,如果数据基本不发生改变,mysql查询缓存还是比较有用的
    6.清理缓存

           FLUSH QUERY CACHE; //清理查询里的缓存内存碎片
                RESET QUERY CACHE; //从查询缓存中移出所有查询

                FLUSH TABLES; //关闭所有打开的表,同时该操作将会清空查询缓存中的内容

2:数据库连接
   该步骤允许使用先前步骤的数据,运行一个数据库查询。
   数据库连接:所要连接的数据库。
   sql:查询的sql语句,可以指定查询参数,在sql中使用?代替,查询中?需要用该组件下方的使用的参数中的参数代替,而该网格
        中的字段以及类型来源于上一个步骤。
   返回的行数:0代表所有行,其他数字限制行的输出。
   外链接:若选中,则总会返回一个结果,就算查询脚本没有结果。
   替换变量:替换查询中的变量。
   参数:查询中使用的参数。

参考网址:http://ju.outofmemory.cn/entry/108650
        https://blog.csdn.net/lan12334321234/article/details/70049471
        https://blog.csdn.net/m_nanle_xiaobudiu/article/details/79274156

原文地址:https://www.cnblogs.com/zja001/p/10084478.html

时间: 2024-10-31 02:54:27

kettle组件-查询的相关文章

[ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结

一个UI前台组件肯定会比较多,我们通常习惯性的使用ID来获取需要操作的组件,但是这种方法是extjs推荐的么?有没有extjs推荐使用的获取组件的方法呢? 目录 目录 extjs的查询组件的API 查询实例 基本的组件查询 组件树查询 通过组件的属性检索 属性匹配操作符 逻辑运算的 官方案例 extjs的查询组件的API 组件查询API文档地址:5.1.0-apidocs/#!/api/Ext.ComponentQuery-method-query 可以看到是使用的Ext.ComponentQu

kettle组件-流程

1:空操作  该操作什么都不做,主要作用是,想测试的时候充当一个占位符.  例如:两个文本文件输入,同时连接到流查询步骤中,但是流查询仅仅能从一个流中查询信息,所以可以在同时连接流查询之前,           将两个文本文件输入连接到空操作,然后再让空操作去连接流查询.         空操作组件具有合并记录的作用. 2:过滤记录  该步骤通过条件和比较符来过滤记录.  发送ture数据给步骤:指定条件返回true的数据将发送到此步骤  发送false数据给步骤:指定条件返回false的数据将

利用kettle组件导入excel文件到数据库

1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV3ZWFzdHN1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 数据库表的结构例如以下: watermark/2/text/aHR0

kettle组件-转换

1:列转行2:列转行3:去除重复记录      步骤名称:保持唯一性      增加计数器到输出?:当勾选了此项,并在计数器字段后给予了名称,则将会在该字段下显示去掉的重复行数.      字段名称:用来去重的字段,可选多个字段,表示多个字段都相同时表示重复.      该功能类似与sql中的distinct关键字. 4:增加序列      一个序列是在某个起始值和增量的基础之上,经常改变的整数值.可以使用数据库定义好的序列,也可以使用kettle决定的序列.      kettle序列在同一个

kettle组件-输入

1:文本文件输入     包含六个页签:文件,内容,错误处理,过滤,字段,其他输出字段     文件:用于选中文件或目录,可以使用正则表达式     内容:文件类型---保持默认CSV即可    分隔符----指文本文件每个字段间的分区标志,不可见分隔符的输入方法:$[01]    文本限定符----指当文本字段中有分隔符作为字段内容一部分时就需要文本限定符    逃逸符-----针对文本限定符而言,当文本字段中出现文本限定符了,需要使用逃逸符    头部-------规定字段行    过滤:将

kettle组件-分组

分组:  步骤名称:在单一转换中名称唯一.  分组字段:指定分组的字段.  聚合:指定需要聚合的字段,方法以及新字段结果的名称.  包含所有的行:如果选择该项,输出中就包含所有的行,不仅仅是聚合.  临时文件目录:临时文件存储的目录.  临时文件前缀:指定命名临时文件时的文件前缀.  添加行号,每一个分组重启:如果想添加行号,就选择该项.  字段名行号:指定行号将插入的字段名称.  名称:做聚合之后结果数据所对应的字段.  Subject:做聚合操作的字段.  类型:选择聚合函数.  值:定义常

delphi中用Table表组件和Query查询组件配合进行的增删改查

一.打开数据库表进入检索状态 var Table1:TTable; //定义Table1为TTable类型的变量 begin Table1:=TTable.Create(self);//自建表 Table1:=DatabaseName:='rsgl';//数据库名 Table1:=TableName:='operator.db' //打开数据库Table表 文件名是"operator.db" Table1.Open;   //Table1表开启状态 Table1.SetKey; //将

ETL工具kettle的几个小组件(剪切字符串,增加常量,计算器)

接下来几天给大家介绍下几个常用的kettle组件1.剪切字符串所谓的剪切字符串,就类似于Oracle的substr函数,具体位置在某个转换的核心对象-转换中,如图使用方法为--双击打开组件,选择你要裁剪的流字段(必须),输出字段(选填),输入初始和结束位置,这样就好了:2.增加常量所谓的增加常量就是增加x个字段,而这每个字段的值都是常量(这里的x是个大于等于0的自然数),具体位置在某个转换的核心对象-转换中,如图使用方法是双击组件,按自己的需要填写参数,如图我们经常需要填写的有名称,类型,格式,

Kettle之数据抽取、转换、装载

Kettle 官网 ETL利器Kettle实战应用解析系列 利用kettle组件导入excel文件到数据库 kettle中实现动态SQL查询 java中调用kettle转换文件