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

牙科医院网站源码/外包公司什么意思

牙科医院网站源码,外包公司什么意思,做网站 找风投,做网站可以使用免费空间吗缘由日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器。类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话就可以,但会存在相当一部分反复的手工操作。建源的数据库信息,目标的数据库信息&…

缘由

日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器。

类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话就可以,但会存在相当一部分反复的手工操作。

建源的数据库信息,目标的数据库信息,如果是多个表,需要一个一个地拉source和target,然后一个一个地mapping,然后运行实现数据同步。

然后很可能,这个workflow使用也就这么一次,就寿终正寝了,却一样要浪费时间去做这个ETL。

快速数据同步实现

于是在想,可不可能快速实现类似需求,尽最大程度减少重复的手工操作?类似基于命令行的方式,简单快捷,不需要太多的手动操作。

所以就有了本文,基于Python(目的是顺便熟悉一下Python的语法),快速实现SQL Server的数据库之间的数据同步操作,

后面又稍微扩展了一下,可以实现不同服务器的数据库之间的表结构,表对应的数据,存储过程,函数,用户自定义类型表(user define table type)的同步

目前支持在两个SQL Server数据源之间:每次同步一张或者多张表/存储过程,也可以同步整个数据库的所有表/存储过程(以及表/存储过程依赖的其他数据库对象)。

支持sqlserver2012及以上版本

需要考虑到一些基本的校验问题:在源服务器上,需要同步的对象是否存在,或者输入的对象是否存在于源服务器的数据库里,是否强制覆盖target对象等等。

在目标服务器上,对于表的同步:

1,表的存在依赖于schema,需要考虑到表的schema是否存在,如果不存在先在target库上创建表对应的schema

2,target表中是否有数据?如果有数据,是否以覆盖的方式执行

对于存储过程的同步:

1,类似于表,需要考虑存储过程的schema是否存在,如果不存在先在target库上创建表对应的schema

2,类似于表,target数据库中是否已经存在对应的存储过程,是否以覆盖的方式执行

3,存储过程可能依赖于b表,某些函数,用户自定义表变量等等,同步存储过程的时候需要先同步依赖的对象,这一点比较复杂,实现过程中遇到在很多很多的坑

可能存在对象A依赖于对象B,对象B依赖于对象C……,这里有点递归的意思

这一点导致了重构大量的代码,一开始都是直来直去的同步,无法实现这个逻辑,切实体会到代码的“单一职责”原则

参数说明

参数说明如下,大的包括四类:

1,源服务器信息   (服务器地址,实例名,数据库名称,用户名,密码),没有用户名密码的情况下,使用windows身份认证模式

2,目标服务器信息(服务器地址,实例名,数据库名称,用户名,密码),没有用户名密码的情况下,使用windows身份认证模式

3,同步的对象类型以及对象

4,同步的对象在目标服务器上存在的情况下,是否强制覆盖

   referrerpolicy=

其实在同步数据的时候,也可以把需要同步的行数提取出来做参数,比较简单,这里暂时没有做。

比如需要快速搭建一个测试环境,需要同步所有的表结构和每个表的一部分数据即可。

表以及数据同步

表同步的原理是,创建目标表,遍历源数据的表,生成insert into values(***),(***),(***)格式的sql,然后插入目标数据库,这里大概步骤如下:

1,表依赖于schema,所以同步表之前先同步schema

2,强制覆盖的情况下,会drop掉目标表(如果存在的话),防止目标表与源表结构不一致,非强制覆盖的情况下,如果字段不一致,则抛出异常

3,同步表结构,包括字段,索引,约束等等,但是无法支持外键,刻意去掉了外键,想想为什么?因吹斯汀。

4,需要筛选出来非计算列字段,insert语句只能是非计算列字段(又导致重构了部分代码)

5,转义处理,在拼凑SQL的时候,需要进行转义处理,否则会导致SQL语句错误,目前处理了字符串中的’字符,二进制字段,时间字段的转义处理(最容易发生问题的地方)

6,鉴于insert into values(***),(***),(***)语法上允许的最大值是1000,因此每生成1000条数据,就同步一次

7,自增列的identity_insert 标识打开与关闭处理

使用如下参数,同步源数据库的三张表到目标数据库,因为这里是在本机命名实例下测试,因此实例名和端口号输入

python SyncDatabaseObject.py -s_h="127.0.0.1" -s_i="sql2017" -s_P=49744 -s_d=DB01 -t_h=127.0.0.1 -t_i="sql2017" -t_P=49744 -t_d="DB02" -obj_type="tab" -obj="[dbo].[table01],schema1.table01,schema2.table01" -f="Y"

这就是微学网-程序员之家为你提供的"基于Python的SQL Server数据库对象同步轻量级实现"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/9711.html

http://www.lbrq.cn/news/1029835.html

相关文章:

  • 做门户网站难吗/百度网页搜索
  • 湖南省人民政府网站集约化建设/常德政府网站
  • dede 网站地图模板htm/seo小白入门教学
  • wordpress 最新 热门 随机 切换/太原seo
  • 佛山专业做网站公司有哪些/电商代运营十大公司排名
  • 如何用服务器代替空间做网站/seo网站优化系统
  • 家居公司网站建设方案ppt/南京百度网站快速优化
  • 贵阳网站设计报价/网站流量排名
  • 上海市政府官方网站/公司网站的作用
  • 遵义网站建设有限公司/联合早报 即时消息
  • 广东 网站备案/优化大师免费安装下载
  • 网站暂停怎么做/网络营销有哪些内容
  • 车床加工东莞网站建设/sem是什么检测分析
  • 大型网站都怎么做推广/seo排名软件有用吗
  • 资阳做网站/上海网站建设关键词排名
  • 嘉兴做网站优化价格/今日新闻 最新消息 大事
  • 网站图片代码/2022年最近一周新闻大事
  • 营销型网站制作方案/龙岗网站推广
  • 网站维护费一年多少钱/seo前线
  • 攀枝花网站seo/制作网站的最大公司
  • 威海专业网站建设/郑州seo技术服务
  • wordpress将用户锁在前台/网站排名优化软件联系方式
  • 宝鸡市住房和城市建设局网站/新闻发稿软文推广
  • 新万网站建设/百度关键词优化平台
  • 个人域名网站可以做企业站吗/深圳关键词排名优化系统
  • 新网站建设运营年计划书/西安疫情最新通知
  • 做网站都需要什么工具/福建优化seo
  • 揭阳手机网站建设/青岛seo推广公司
  • 设计网站推荐html/找网站设计公司
  • 如何做网站跳转/便宜的seo官网优化
  • 抗辐照CANFD通信芯片在高安全领域国产化替代的研究
  • 区块链 + 域名Web3时代域名投资的新风口(上)
  • 机器翻译:学习率调度详解
  • 前后端分离项目中Spring MVC的请求执行流程
  • 解释 Spring MVC 的工作原理
  • 前端最新Vue2+Vue3基础入门到实战项目全套教程,自学前端vue就选黑马程序员,一套全通关!笔记