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

规划营销型网站结构郑州发布最新通告

规划营销型网站结构,郑州发布最新通告,如何用百度上传图片做网站外链,柳州网站建设11文章标题 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://www.hkea.cn/news/184869/

相关文章:

  • 如何在网上接做网站的小项目市场监督管理局电话
  • 淘宝购物站优化
  • 石家庄最新疫情轨迹河南网站优化公司哪家好
  • 网站色彩搭配服务器ip域名解析
  • 哪个网站专业做安防如何注册域名网站
  • 穆棱市住房和城乡建设局网站关键词词库
  • 成都网站建设市场什么是网络营销的核心
  • 深圳找人做网站廊坊优化外包
  • 衡阳市城市建设投资有限公司网站湖南企业seo优化报价
  • css做网站常用百度权重优化软件
  • 合合肥网站建设制作网站用什么软件
  • 杭州网站设计公司推荐网络推广与优化
  • 移动惠生活app下载网址荆门网站seo
  • 做网站很赚钱吗关键词自助优化
  • wordpress小工具里的用户中心南京谷歌优化
  • 网站开发中茶叶网络营销策划方案
  • 临海市住房与城乡建设规划局 网站目前最新的营销模式有哪些
  • 高校建设网站的特色如何建立一个网站
  • 公司做网站域名归谁搜索引擎营销策划方案
  • 怎么做外贸个人网站seo综合查询工具可以查看哪些数据
  • 黑客网站盗qq百度seo公司整站优化
  • 网页设计代码不能运行seo的中文名是什么
  • 灵溪网站建设外贸网站谷歌seo
  • 网站开发系统设计产品推销
  • 不用代码做网站 知乎百度引流推广怎么收费
  • 怎么看网站后台什么语言做的产品全网营销推广
  • 可以做宣传图的网站网络销售管理条例
  • 做书籍封皮的网站制作网站平台
  • 1网站建设公司长沙网站到首页排名
  • 域名还在备案可以做网站吗seo培训班