【kettle003】kettle访问SQL Server数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。
熟悉、梳理、总结下Microsoft SQL Server 2022关系数据库相关知识体系

  • kettle访问SQL Server数据库并处理数据至execl文件文章目录索引如下所示:
    在这里插入图片描述

1.环境搭建、配置

  • 1.0 实验环境信息
    • Windows 10
    • CentOS 7.1(虚拟机)
    • Docker version 26.0.2
    • Dbeaver
    • Kettle 8.2
    • Microsoft SQL Server 2022
  • 1.1 拉取SQL Server镜像数据库
    • 如果遇到拉取镜像很慢的问题,可以参考 https://kngines.blog.csdn.net/article/details/138142888
    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  • 1.2 查看镜像、启动容器并查看启动结果
    docker imagesdocker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Y.sa123456" -p 1433:1433 --name mssql2022 -d mcr.microsoft.com/mssql/server:2022-latestdocker ps -a
    
  • 1.3 容器运行结果在这里插入图片描述

2.SQL Server数据库链接测试

  • 2.1 DBeaver连接信息配置
    在这里插入图片描述
  • 2.2 SQL 建表语句测试
    -- 创建数据库并指定默认字符集
    create database Youli collate chinese_prc_ci_as;-- 使用新建数据库
    use Youli;-- 创建测试表
    create table youli_testtable
    (id int primary key, -- 定义id为主键name nvarchar(50), -- 定义name为可变长度字符串字段,最大长度50birthday date -- 定义birthday为日期类型字段
    );-- 插入一些示例数据
    insert into youli_testtable (id, name, birthday) values (1, '张三', '1990-01-01');
    insert into youli_testtable (id, name, birthday) values (2, '李四', '1991-02-01');
    insert into youli_testtable (id, name, birthday) values (3, '王五', '1992-03-01');
    insert into youli_testtable (id, name, birthday) values (4, '张三', '1990-01-01');
    insert into youli_testtable (id, name, birthday) values (5, '李四', '1991-02-01');
    insert into youli_testtable (id, name, birthday) values (6, '王五', '1992-03-01');
    
  • 2.3 数据库存储数据中文乱码问题处理
    在这里插入图片描述
    • 通过修改数据库数据集编码解决。
    -- 创建数据库并指定默认字符集
    create database Youli collate chinese_prc_ci_as;
    -- 修改数据库字符集
    alter database Youli collate chinese_prc_ci_as;
    

3.kettle流程任务配置、效果验证

  • 3.1 数据表输入访问信息配置、测试
    在这里插入图片描述
    • 3.1.1 获取SQL查询语句详情选择(表,默认的是当前链接数据库下面的数据表,也可选择其他模式下的数据表)
      在这里插入图片描述
    • 3.1.2 配置好信息后,进行数据预览查看

在这里插入图片描述

  • 3.2 kettle任务流程测试执行结果
    在这里插入图片描述
    • 3.2.1 数据输出结果及详情
      在这里插入图片描述

4.其他参考

  • https://zhuanlan.zhihu.com/p/683823756

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ITMS-90426: Invalid Swift Support

原文 Please correct the following issues and upload a new binary to App Store Connect. ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it. 解决方式 ITMS-…

uniapp小程序订阅通知

服务 开通订阅服务 const tmplIds ref([tsdasdadasdfgdrtwexQHdEsjZV])//换成自己的 function confirm(){uni.requestSubscribeMessage({tmplIds: tmplIds.value,success: (res) > {// console.log(res)let auth_notice res[tmplIds.value[0]] accept ? 1 : 2 //1是接…

【Android】实现 MVVM 架构,创建 ViewModel、LiveData 和数据绑定等组件在 XML 中使用数据绑定

在 Android 中实现 MVVM 架构,需要创建 ViewModel、LiveData 和数据绑定等组件,并在 XML 中使用数据绑定来将 ViewModel 的数据和 UI 绑定在一起。以下是一个简单的示例代码: 创建 ViewModel 类: public class MyViewModel exte…

在Redux Toolkit中使用redux-persist进行状态持久化

在 Redux Toolkit 中使用 redux-persist 持久化插件的步骤如下: 安装依赖 npm install redux-persist配置 persistConfig 在 Redux store 配置文件中(例如 rootReducer.js),导入必要的模块并配置持久化选项: import { combineReducers } from redux; import { p…

MIT 6.172 笔记 现代硬件算法案例分析

本文是https://en.algorithmica.org/hpc/和MIT 6.172的课后题解析 课程地址: 文章目录 HW2 Profiling Serial Merge Sort测试DEBUG和非DEBUG区别测试inline和非inline区别Coarsening HW3 向量化为什么用负偏移量测量向量化跨步向量化 HW4 Reducer Hyperobjects比较o…

mac上用brew安装node

没有安装Homebrew的,可以参考mac安装Homebrew 1. 简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它允许开发者使用 JavaScript 来编写服务器端的应用程序,例如网站后端、API 服务、…

[Qt的学习日常]--信号和槽

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习&#xff…

【JAVA】一文掌握Java并发编程

Java 开发中,并发编程属于相当重要的一个知识点,可以说,Java 的并发能力,是成就今日 Java 地位的因素之一。Java 的并发编程由浅入深实质上是包含 Java(API)层、JVM(虚拟机)层、内核…

[Linux][网络][网络编程套接字][一][预备知识][套接字地址结构]详细讲解

目录 0.预备知识1.理解源IP地址和目的IP地址2.理解源MAC地址和目的MAC地址3.端口号4.理解端口号和进程ID5.理解源端口号和目的端口号6.通过IP地址、端口号、协议号进行通信识别7.认识TCP协议和UDP协议8.网络字节序 1.套接字地址结构(sockaddr) 0.预备知识 1.理解源IP地址和目的…

初学软件工程后对其的希望及个人目标

(学校作业) flag: 希望这学期可以做出人生中第一个亲手开发的软件。 对软件工程的希望: 1、希望能在软件工程学到更多在软件方面的技能,可以对软件有更加深刻的理解。 2、希望这个专业可以发展的越来越好,软…

redisson分布式锁的单机版应用

package com.redis;/*** author linn* date 2024年04月23日 15:31*/ import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.context.annotation.Bean; import org.springframework.context.…

从 0 到 1 创建、测试并发布属于自己的 Go 开源库

作者:陈明勇 个人网站:https://chenmingyong.cn 文章持续更新,如果本文能让您有所收获,欢迎点赞收藏加关注本号。 微信阅读可搜《程序员陈明勇》。 这篇文章已被收录于 GitHub https://github.com/chenmingyong0423/blog&#xff…

AIGC——什么是人工智能生成内容

人工智能生成内容(AIGC)是当今数字时代的一个引人注目的前沿技术,它借助深度学习和自然语言处理等技术,使计算机系统具备了生成高质量文本、图像、音频等多媒体内容的能力。AIGC的出现不仅推动了信息技术的发展,也在多…

判断字符串由几个单词组成(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int world 0;int i 0;char c 0;char string[81] { 0 };int num 0;//提示用户&#xff…

C++---重载

1、运算符重载 #include <iostream> using namespace std; class complex { int rel; int vir; public: complex(){} complex(int rel,int vir):rel(rel),vir(vir){} void show() { cout << rel << "" << vir << "i" <&l…

(待更)DRF: 序列化器、View、APIView、GenericAPIView、Mixin、ViewSet、ModelViewSet的源码解析

前言&#xff1a;还没有整理&#xff0c;后续有时间再整理&#xff0c;目前只是个人思路&#xff0c;文章较乱。 注意路径匹配的“/” 我们的url里面加了“/”&#xff0c;但是用apifox等非浏览器的工具发起请求时没有加“/”&#xff0c;而且还不是get请求&#xff0c;那么这…

31.Gateway网关-跨域问题

跨域 1.域名不同&#xff1a;www.baidu.com和www.taobao.com,www.taobao.org 2.域名相同&#xff0c;端口不同。localhost:8080和localhost:8081 跨域问题 浏览器禁止请求的发起者与服务端发生跨域ajax请求&#xff0c;请求被浏览器拦截的问题。 解决方案 CORS 浏览器询…

0426_C高级4

练习1&#xff1a; 输入一个数字&#xff0c;实现数字逆置&#xff08;不使用字符串截取方式&#xff09; 1 #!/bin/bash2 read -p "输入一个数字&#xff1a;" number3 p$number4 result5 while [ $p -ne 0 ]6 do7 result$((result*10p%10))8 p$((p/10))9 …

what are the different types of redundancy in an image.

在图像中&#xff0c;冗余主要表现为以下几种形式&#xff1a; 空间冗余&#xff1a;这是指图像内部相邻像素之间存在较强的相关性所造成的冗余。例如&#xff0c;在图像中&#xff0c;如果存在一片连续的区域&#xff0c;其像素颜色相同&#xff0c;这就产生了空间冗余。这种…

c++类基础知识

引入 下面是一个从菜鸟抄来的例子&#xff0c;可以看到BOX定义了两个公共函数&#xff0c;get和set&#xff0c;在类里面声明&#xff0c;在外面定义&#xff0c;也可以直接在里面定义。 #include <iostream>using namespace std;class Box {public:double length; /…