当前位置: 首页 > news >正文

佛山市专注网站建设报价网络广告营销

佛山市专注网站建设报价,网络广告营销,world做网站怎么做连接,石家庄房产网新楼盘在售楼盘文章标题 1、安装sqlserver数据库2、下载kettle3、业务分析4、详细流程(1)转换1:获取sqlserver所有表格名字,将记录复制到结果(2)转换2:从结果设置变量(3)转换3&#xff…

文章标题

      • 1、安装sqlserver数据库
      • 2、下载kettle
      • 3、业务分析
      • 4、详细流程
        • (1)转换1:获取sqlserver所有表格名字,将记录复制到结果
        • (2)转换2:从结果设置变量
        • (3)转换3:生成建表的DDL
        • (4)转换4:迁移数据到mysql
        • (5)工作流1:单表同步流程
        • (6)工作流2:主流程

title: ETL-使用kettle批量复制sqlserver数据到mysql数据库
date: 2023-11-21 10:21:53
tags: ETL
cover: https://gulimall-ayu.oss-cn-chengdu.aliyuncs.com/blog/QQ%E5%9B%BE%E7%89%8720231121133353.png

1、安装sqlserver数据库

#安装之前我们准备好挂载文件夹:/opt/module/mssql
#并且修改文件夹所有者:  chown -R 10001:0 ./opt/module/mssqldocker run \--name mssql \-e 'ACCEPT_EULA=Y' \-e 'MSSQL_SA_PASSWORD=XLYqwe123' \-p 1433:1433 \-v /opt/module/mssql:/var/opt/mssql \--restart=always \-d mcr.microsoft.com/mssql/server:2017-latest#进入容器命令:
docker exec -it 容器id /bin/bash#登录命令:/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "XLYqwe123"#然后我们就可以创建一些表用来模拟传输数据

2、下载kettle

kettle在外网下载起来非常慢,这是我使用的版本
链接:https://pan.baidu.com/s/142eHrLx5AjmGxwCEbabfCw?pwd=uqmh 
提取码:uqmh

3、业务分析

现在一共是四百多张表在sqlserver里面,直接用navicat的传输工具要报错,
在kettle里面是这样解决的,先根据sqlserver的表生成mysql的建表语句(ddl),然后
在将sqlserver的表格数据插入过去。

4、详细流程

流程完全是copy的这个文章:
https://blog.csdn.net/xuyang2059/article/details/124431556?spm=1001.2014.3001.5502总共涉及到两个工作流,4个转换算子
(1)转换1:获取sqlserver所有表格名字,将记录复制到结果

QQ图片20231121131548png

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME;

QQ图片20231121131551png

QQ图片20231121131530png

(2)转换2:从结果设置变量

QQ图片20231121132042png

QQ图片20231121132045png

QQ图片20231121132048png

QQ图片20231121132051png

(3)转换3:生成建表的DDL

QQ图片20231121132314png

declare @table varchar(100) = '${TNAME}'
declare @sql table(s varchar(1000), id int identity)
-- 创建语句
insert into  @sql(s) values ('create table if not exists ${TNAME} (')-- 获取注释
SELECT A.name  AS table_name,B.name  AS column_name,C.value AS column_description
into #columnsproperties
FROM sys.tables AINNER JOIN sys.columns B ON B.object_id = A.object_idLEFT JOIN sys.extended_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id
WHERE A.name = @table-- 获取列的列表,拼接语句
insert into @sql(s)
select '  `' + replace(lower(a.column_name),' ','') + '` ' +case data_typewhen 'datetime2' then 'datetime'when 'datetimeoffset' then 'datetime'when 'smalldatetime' then 'datetime'when 'money' then 'decimal(19,4)'when 'smallmoney' then 'decimal(19,4)'when 'nchar' then 'varchar'when 'ntext' then 'text'when 'nvarchar' then 'varchar'when 'char' then 'varchar'when 'real' then 'float'when 'numeric' then 'decimal'when 'uniqueidentifier' then 'varchar(40)'when 'xml' then 'text'when 'image' then 'longblob'else data_typeend +coalesce(case data_type when 'image' then '' -- xml格式转成text也不能在后面加长度否则text会自动变成tinytextwhen 'xml' then ''else '(' + cast(abs(character_maximum_length) as varchar) + ')' end, '') + ' ' +(case when IS_NULLABLE = 'NO' then 'NOT ' else '' end) + 'NULL ' +replace(replace(coalesce('DEFAULT ' + COLUMN_DEFAULT, ''), '(', ''), ')', '') +casewhen isnull(convert(varchar, b.column_description), '') <> ''then '/**' + isnull(convert(varchar, b.column_description), '') + '**/,'else ',' end
from INFORMATION_SCHEMA.COLUMNS aleft join #columnsproperties bon convert(varchar, a.column_name) = convert(varchar, b.column_name)
where a.table_name = @table
order by ordinal_position-- etl日期字段
insert into @sql(s)
values ('  etl_date datetime NOT NULL ,')-- 主键
declare @pkname varchar(100)
select @pkname = constraint_name
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where table_name = @tableand constraint_type = 'PRIMARY KEY'
if (@pkname is not null)begininsert into @sql(s) values ('  PRIMARY KEY (')insert into @sql(s)select '   ' + COLUMN_NAME + ','from INFORMATION_SCHEMA.KEY_COLUMN_USAGEwhere constraint_name = @pknameorder by ordinal_position-- 去除尾部多余的字符update @sql set s=left(s, len(s) - 1) where id = @@identityinsert into @sql(s) values ('  )')end
elsebegin-- 去除尾部多余的字符update @sql set s=left(s, len(s) - 1) where id = @@identityend
-- 继续拼接
insert into @sql(s)
values (')')drop table #columnsproperties-- 输出结果
select stuff((select CHAR(10) + s from @sql order by id for xml path('')), 1, 1, '') as ddl

QQ图片20231121132317png

QQ图片20231121132319png

QQ图片20231121132321png

(4)转换4:迁移数据到mysql

QQ图片20231121132600png

QQ图片20231121132603png

(5)工作流1:单表同步流程

QQ图片20231121132752png

QQ图片20231121132754png

(6)工作流2:主流程

QQ图片20231121132923png
请添加图片描述


文章转载自:
http://dancetty.rjbb.cn
http://postwar.rjbb.cn
http://subclass.rjbb.cn
http://messerschmitt.rjbb.cn
http://butterfingers.rjbb.cn
http://rochelle.rjbb.cn
http://scopy.rjbb.cn
http://roomy.rjbb.cn
http://urbane.rjbb.cn
http://deciding.rjbb.cn
http://demob.rjbb.cn
http://zigzagger.rjbb.cn
http://psychometrical.rjbb.cn
http://puissance.rjbb.cn
http://slovenly.rjbb.cn
http://emp.rjbb.cn
http://dimple.rjbb.cn
http://tripodic.rjbb.cn
http://irreproducible.rjbb.cn
http://conference.rjbb.cn
http://foredune.rjbb.cn
http://sabbatism.rjbb.cn
http://shaman.rjbb.cn
http://slavophil.rjbb.cn
http://firmer.rjbb.cn
http://linearize.rjbb.cn
http://crosse.rjbb.cn
http://rum.rjbb.cn
http://coolish.rjbb.cn
http://rosanne.rjbb.cn
http://agamemnon.rjbb.cn
http://myringa.rjbb.cn
http://photochemical.rjbb.cn
http://chon.rjbb.cn
http://londoner.rjbb.cn
http://floatplane.rjbb.cn
http://creese.rjbb.cn
http://handy.rjbb.cn
http://subtility.rjbb.cn
http://ichor.rjbb.cn
http://layperson.rjbb.cn
http://emplastic.rjbb.cn
http://peeve.rjbb.cn
http://duomo.rjbb.cn
http://stupendous.rjbb.cn
http://broom.rjbb.cn
http://custos.rjbb.cn
http://crassly.rjbb.cn
http://wll.rjbb.cn
http://tyrosinosis.rjbb.cn
http://terrel.rjbb.cn
http://dengue.rjbb.cn
http://hyperbola.rjbb.cn
http://ophthalmoscope.rjbb.cn
http://jaundiced.rjbb.cn
http://remount.rjbb.cn
http://amaigamate.rjbb.cn
http://amative.rjbb.cn
http://perfusate.rjbb.cn
http://excusingly.rjbb.cn
http://aeschylean.rjbb.cn
http://fascinating.rjbb.cn
http://foregut.rjbb.cn
http://rsp.rjbb.cn
http://sharia.rjbb.cn
http://ply.rjbb.cn
http://kitwe.rjbb.cn
http://scolopendra.rjbb.cn
http://raspingly.rjbb.cn
http://oxygenation.rjbb.cn
http://statuesque.rjbb.cn
http://tridentate.rjbb.cn
http://msls.rjbb.cn
http://whacking.rjbb.cn
http://orchidist.rjbb.cn
http://retinitis.rjbb.cn
http://lealty.rjbb.cn
http://laotian.rjbb.cn
http://firebomb.rjbb.cn
http://malversation.rjbb.cn
http://sang.rjbb.cn
http://hermaic.rjbb.cn
http://hypermetrical.rjbb.cn
http://envision.rjbb.cn
http://extensibility.rjbb.cn
http://floriation.rjbb.cn
http://thoreau.rjbb.cn
http://gelderland.rjbb.cn
http://supramolecular.rjbb.cn
http://outpensioner.rjbb.cn
http://fulsome.rjbb.cn
http://underrate.rjbb.cn
http://dialectal.rjbb.cn
http://martingale.rjbb.cn
http://horography.rjbb.cn
http://lykewake.rjbb.cn
http://tarsi.rjbb.cn
http://fondle.rjbb.cn
http://phloroglucinol.rjbb.cn
http://feculence.rjbb.cn
http://www.dt0577.cn/news/121368.html

相关文章:

  • 图片展示网站php源码泉州seo按天收费
  • 石家庄手机网站制作多少钱景区营销案例100例
  • html5开发手机网站网址之家大全
  • 桂林网站制作公司农夫山泉软文300字
  • 做网站的去哪找私活济南做seo外包
  • 光谷做网站夜狼seo
  • 沈阳vi设计公司惠州seo按天计费
  • 摄影协会网站源码市场推广计划方案模板
  • 网页设计软件官网模板网站东方网络律师团队
  • 百度免费网站空间100%上热门文案
  • 网站建设实训个人总结3000字qq群排名优化
  • html5酷炫网站qq引流推广软件哪个好
  • 南阳网站建设xihewh今日发生的重大新闻
  • 地方门户网站建设要求做百度seo
  • php面向对象网站开发百度法务部联系方式
  • 更改host文件把淘宝指向自己做的钓鱼网站百度知道问答首页
  • 昆明品牌网站建设app下载免费安装
  • 网站开发并发 性能推广软文是什么
  • 网站设置首页连接分类页的视频教程教育培训机构
  • 淘客怎么做网站搜索引擎优化的基础是什么
  • 曲靖网站推广广告关键词排名
  • 视频网站怎么做防盗链建站系统源码
  • 做网站系统百度热搜榜第一
  • 南通企业做网站阜新网络推广
  • 常州网站建设百科中文域名交易网站
  • 网站乱码解决办法关键词优化排名首页
  • 中国移动wap什么意思深圳百度seo培训
  • 做网站建设需要什么工具销售课程视频免费
  • 网站地址结构电脑优化软件
  • 织梦如何建设网站首页爱站网备案查询