如何使用常用的6种方式对数据进行转换(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
如何使用常用的6种方式对数据进行转换(二)
 
实验目标:
1、 使用T-SQL语句对数据进行转换。
2、 使用备份和还原对数据进行转换。
3、 使用分离和附加对数据进行转换。
4、 使用复制对数据进行转换。(重点讲解)
5、 使用SSIS导入和导出向导对数据进行转换。
6、 使用SSIS包设计器对数据进行转换
 
 
实验步骤:
注意:下面所有的操作都将对以下表格进行更改
clip_image002
 
4、 使用复制对数据进行转换。
通过复制可以将数据的多个拷贝分发到公司中的各个服务器中。通过复制为多台服务器提供相同的数据,这样用户就可以在不同服务器中访问同样的信息,对以一个拥有大量用户的企业,复制可以分散用户访问服务器的负载,从而为每个用户提供更高质量的服务。
复制可以将数据和数据库对象从一个数据库复制和分发到另一个数据库,然后在数据库间进行同步,以维持一致性。使用复制,可以在局域网和广域网、拨号连接、无线连接和Internet上将数据分发到不同位置以及分发给远程或移动用户。
发布服务器拥有原始数据的拷贝,通过订阅,将数据送到分发服务器,并且由分发服务器传递给订阅服务器。
分发数据库存储复制状态数据和有关发布的信息,并且在某些情况下为从发布服务器向订阅服务器移动的数据起着排队的作用。在很多情况下,一个数据库服务器实例可以充当发布服务器和分发服务器两个角色。
订阅服务器拥有数据的拷贝,根据所选复制的类型,订阅服务器还可以将数据更改传递回发布服务器或者将数据重新发布到其他订阅服务器。
 
实验环境
在某一个公司里的mysql数据库中,有很多应用与销售信息记录表(mytable表)相关联,作为这家公司的数据库管理员,为了避免冲突,需要将mysql表复制到一个不同的SQL Server实例上,原实例中的表用于数据更新,副本则用于查询分析,并且需要时保持同步更新。
 
实施步骤:
1、 首先安装两台SQL,如果都在工作组环境下,就用混合模式进行验证,如果都在域环境下,就用windows域用户账户进行验证。本实验是在工作组环境下,为了简便起见都用SQL Server中的SA用户进行验证,实际中,最好不要这样去做。如何启用SA账户这里就不做过多介绍了。
首选连接到其中一台发布服务器上,然后选择“新建发布”就可以了,注意:发布服务器必须要开启SQL Server Agent服务。其次,服务器实例必须为本机计算机名称。
clip_image001
 
选择其中一个需要发布的数据库mysql。
clip_image003
 
发布类型:
快照复制—这是最容易进行设置的复制方式,快照复制只需要周期性地发送数据。当同步发生时,快照复制发送所有数据。不需要去监视数据的修改,但这样也可能引起数据流量的增加,如:当没有数据修改时也会发送所有的数据。
事务性复制—与快照复制不同,只要数据发生改变。事务性复制就将它们发送给订阅服务器。这样可以减少数据复制的流量。事务性复制通常从发布数据库对象和数据的快照开始,创建初始快照。当发生复制时,事务日志被发送到订阅服务器上,用以保证事务性的一致性。默认情况下,事务性发布的订阅服务器被视为只读,因为更改将不会传播回发布服务器。
合并复制—合并复制允许既可以在发布服务器上修改数据,也可以在订阅服务器上修改数据,当同步发生时,发布服务器的修改和订阅服务器的修改被合并在一起。在合并复制中,同一数据可能由发布服务器和多个订阅服务器进行了更新。因此在合并更新时可能会产生冲突,合并复制提供了多种处理冲突的方法。与事务复制相同,合并复制通常也是从发布数据库对象和数据的快照开始,当复制发生时,之后的更改被合并在一起。
为了满足实验背景需求,采用“事务性发布”。
clip_image005
 
选择需要发布的表,本实验选用mytable,注意,选择的表中必须要有主键才可以。
clip_image007
 
可以通过下面的“添加”菜单对需要表中的有效信息进行筛选,本实验就不筛选了。
clip_image009 clip_image011
 
指定连接发布服务器的账户,本实验由于在工作组中,所以选用SQL Server内置账户。
clip_image013 clip_image015
 
给该发布服务器命一个名称。
clip_image017 clip_image019
 
发布创建成功之后,会在本地发布子目录里显示出发布的数据库。
clip_image020
 
通过本机连接到另一台SQL Server数据库实例上,通过本地订阅,订阅发布的内容。也可以在另一他SQL Server数据库上做。
clip_image022
 
选择“发布的服务器”然后通过SA账号连接到发布服务器上。订阅自己需要的发布内容(在实际环境中可能有多个发布)。
clip_image024
 
在实际环境中发布服务器和分发服务器一般放在同一个SQL server中,就选择最上面那个就可以了。
clip_image026
 
添加订阅服务器到此列表中,并选择需要订阅的服务器,然后选择订阅服务器中的一个数据库就可以了。
clip_image028
 
与分发服务器的连接需用模拟进程账号,这样做不是很安全,如果是域环境就直接使用域用户账户就可以了,与订阅服务器的连接,使用订阅服务器上的SQL 账户,这里选用SA,实际中,决定不允许使用这个账户。
clip_image030 clip_image032 clip_image034 clip_image036 clip_image038
 
完成之后,可以在订阅服务器的mysql_dingyue数据库中看到刚才订阅的表。
clip_image040
 
为了测试方便,在发布服务器上修改数据库mysql中的表mytable,将小诺同志的工资加1000,看订阅服务器是否发生变化。
clip_image041
 
使用SQL语句查看订阅服务器数据库mysql_dingyue的表mytable看小诺的工资是否发生变化。
clip_image043
 
如果测试不成功,可以通过“查看同步状态”进行坚持数据库的状态。
clip_image045 clip_image047
 
5、 使用SSIS导入和导出向导对数据进行转换。
导入和导出向导提出了一种从源向目标复制数据的最简便的方法,可以在多种常用数据格式之间转换数据,还可以创建目标数据库和插入表。
可以向下列源中复制数据或从其中复制数据:SQL Server、文本文件、Access、Excel、其他OLE DB访问接口。
这些数据源即可用作源,又可用作目标。还可将ADO.NET访问接口用作源。指定源和目标后,便可选择要导入或导出的数据。可以根据源和目标类型,设置不同的向导选项。例如,如果在SQL Server数据库之间复制数据,则指定要从中复制数据的表,或提供用来选择数据的SQL 语句。
实验内容:
1、将SQL Server数据导出到Excel中
2、将Access数据导入到SQL Server中
实验步骤:
********将SQL Server数据导出到Excel中************
例如:将数据库mysel中的mytable中的Name和Salary>4000数据导出到一个名为mytable_excel中
clip_image049
 
数据源选择SQL Native Client 服务器名称选择本地服务器,并且使用Windows身份验证,也可以使用混合模式身份验证,数据库选择mysql
clip_image051
 
目标数据选择Microsoft Excel,并通过浏览指向需要导出到的那个excel表格。
clip_image053
 
由于不是全部导出,需要通过命令行对数据库中的表进行赛选。
clip_image055
 
输入语句select name,salary from myatable where salary >4000,意思就是将表mytable中name和salary>4000的数据导出来。写完语句之后,最好通过分析验证一下。然后再执行一下看看是否是你想要的结果,如果不是再返回上一步继续操作。
clip_image057
clip_image059
clip_image061
clip_image063
 
下面是导出的数据,完全符合标准。
clip_image065
 
*******************将Access中数据导入到SQL Server中***************************
例如:将Access数据库mytable_access中的数据导入到SQL Server数据库mysql中的test表中。
下面是源数据
clip_image067
clip_image069
 
源数据选择Microsoft Acces,并浏览到源数据文件即可。
clip_image071
 
目标数据选择SQL Native Client即可,数据库选择mysql
clip_image073
clip_image075
 
如果源数据和目标数据有差异,做一个列映射,在SQL Server中列名最好用英文字母表示。并先前在SQL Server数据库mysql中创建一张与Access数据库同名的表。导入之后,数据就导入到那张同名的表中。
clip_image077
clip_image079
clip_image081
 
6、 使用SSIS包设计器对数据进行转换(推荐使用)
使用SSIS设计器可以将先前做的导入和导出以及其它操作做成一个包的形式存放,需要导入或者导出数据时,只需要将包执行一次就可以了,而且转换速度是先前速度的7倍。
简单了解一下包的概念:包是一个集合,其中可包括连接、控制流、数据流、事件处理程序、变量和配置,可以使用SSIS工具将这些对象组合到包中。包是最重要的Integration services对象。
*******************将SQL Server数据导出到Excel中******************************
例如:将数据库mysql中的数据库mytable导出到一个名为newtest.xls中
打开开发工具SQL Server Business Interlligence Development Studio.lnk。,然后新建一个项目。
clip_image083
 
在解决方案资源管理中选择“数据源”,新建一个数据源,如果哦解决方案资源管理器未出现,单击菜单栏中的“视图”—》“解决方案资源管理器”
clip_image085
clip_image087
 
为mysql数据源建立连接管理器,在连接管理器窗口中,单击鼠标右键,选择“从数据源新建连接”。
clip_image089
clip_image091
 
建立数据流任务,在包设计窗口中单击“控制流”标签。在工具箱中选择“数据流任务”并拖动到包设计器窗口。然后单击“控制器”标签,选择“工具箱“中的””“数据流源”,然后选择“OLE DB源”,并拖动到包设计器窗口。
clip_image093
 
在包设计窗口中选择“OLE DB源”,单击鼠标右键,选择“编辑”,在弹出的对话框中指定下列表
clip_image095
 
然后,选择“工具箱”中的“数据流转换”,选择“派生列”并拖动到包设计窗口。在包设计窗口拖动“OLE DB源”的绿色连接到“派生列”。
然后在工具箱中选择“数据库目标里的“平面文件目标”并拖动到包设计窗口。在包设计窗口中拖动“派生列”的绿色连接到“平面文件目标”然后编辑,如下图所示:
clip_image097
 
在目标编辑器中选择“映射”并将mytable表中的列映射到ACCESS表中。
clip_image099
 
设置完成之后,可以先测试一下,然后保持。
clip_image101
 
保存的SSIS包在下面路径里,需要时,双击这个包就可以了
clip_image103
clip_image105
 
下面是SQL SERVER里的mysql里的表mytable转换成Access表的结果。
clip_image107
 
*******将Access中数据导入到SQL Server中*******
例如:将Access数据库mytable_access中的数据导入到SQL Server数据库mysql中的xiaonuo表中。
做法与上面基本相同。这里就不做过多演示了。
clip_image109
clip_image111
clip_image113


本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/155126,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
监控 负载均衡 Java
深入理解Spring Cloud中的服务网关
深入理解Spring Cloud中的服务网关
|
3月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
425 13
|
存储 缓存 网络协议
了解 ARP 系列 – ARP、inARP、GARP 和 RARP
了解 ARP 系列 – ARP、inARP、GARP 和 RARP
903 4
ly~
|
存储 安全 网络安全
云数据库的安全性如何保障?
云数据库的安全性可通过多种方式保障,包括多因素身份验证、基于角色的访问控制及最小权限原则,确保仅有授权用户能访问所需数据;采用SSL/TLS加密传输和存储数据,加强密钥管理,防止数据泄露;定期备份数据并进行异地存储与恢复演练,确保数据完整性;通过审计日志、实时监控及安全分析,及时发现并应对潜在威胁;利用防火墙、入侵检测系统和VPN保护网络安全;选择信誉良好的云服务提供商,确保数据隔离及定期安全更新。
ly~
916 2
|
监控 数据可视化 数据挖掘
8款适用于团队管理的数据可视化工具盘点!
数据可视化工具在快节奏的工作环境中发挥着重要作用,帮助团队实时监控项目进度、资源使用情况等,提升决策效率。团队成员可通过互动操作深入探索数据细节,支持多人协作。文章还盘点了八款常用的数据可视化工具,包括板栗看板、Tableau、Microsoft Power BI、Google Data Studio、QlikView、Looker、Domo 和 Plotly,详细介绍了它们的特点和优缺点。最后,展望了数据可视化工具的未来发展趋势,如智能化、实时性、多技术融合、数据民主化和个性化定制。
|
数据可视化 JavaScript 数据挖掘
2024年最值得关注的5款数据可视化工具
在信息爆炸的时代,数据可视化工具帮助我们从海量数据中提取有价值的信息,并以直观、易于理解的方式展现。本文介绍五款主流工具:板栗看板、Power BI、Datawrapper、QlikView 和 Highcharts,从产品特色、使用场景等角度分析,帮助用户根据自身需求选择合适的工具。
1603 0
2024年最值得关注的5款数据可视化工具
|
XML Java 数据库连接
IDEA如何使mapper直接跳转到xml,超实用
【10月更文挑战第23天】本文介绍了如何在 MyBatis 框架中配置 Mapper 接口和 XML 文件的关联。方法一:使用 MyBatis-Generator 插件自动生成代码;方法二:手动配置,包括命名规范、文件路径设置和 IDEA 设置;此外,还可以通过快捷键、导航栏和 MyBatis-Plugin 插件来增强跳转功能。
5747 1
微信接口报错 "errcode":40163,"errmsg":"code been used, 如何处理?
【10月更文挑战第11天】微信接口报错 "errcode":40163,"errmsg":"code been used, 如何处理?
6378 1
|
JavaScript Java 数据库
人事|基于SpringBoot+vue的人事管理系统设计与实现(源码+数据库+文档)
人事|基于SpringBoot+vue的人事管理系统设计与实现(源码+数据库+文档)
406 0
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何进行本地化部署
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。