Excel催化剂功能第20波-Excel与Sqlserver零门槛交互-数据上传篇

2021-08-19 15:32:17 浏览数 (1)

Excel作为众多数据存储的交换介质,在不同的系统内的数据很少可以很连贯地进行整合分析,一般的业务系统都会提供导出Excel作为标配功能供用户使用系统内生成的数据。 此时最大的问题是,Excel很维去成为各个数据源的整合方,其数据存储能力和运算能力一直是众多深度Excel用户们一大头痛的事情,当数据量一大,做什么操作都会慢下来。 今天Excel催化剂将给大家带来全新的解决方案,Excel与Sqlserver深度集成,在Excel上的数据源能轻松上传至Sqlserver中,实现以Sqlserver为中心的数据中心的架构,为各系统内的数据实现整合成为可能!

使用场景

在IT行业蓬勃发展20年后,目前广大的中小企业们也基本上业务系统化,每个业务场景都有相应的业务系统来搭配使用,但遗憾的是大部分的系统是没法互相打通的,很容易形成企业内的数据孤岛现象,例如订单系统、人事系统,仓库系统,还有如今电商时代下,各式各样的电商平台,提供给企业各式各样的系统相关的格式不一的数据。

同样地一个庞大的数据来源是各个业务部门业务人员手头上用Excel表格手头维护着的一些数据,区别于系统内的静态不变维护周期慢致使数据准确性有限的数据,业务人员自行维护的数据通常更有数据的使用价值,例如:系统内定义的商品信息,仅简单的一些商品属性如商品年份、商品品类、价格等,业务人员手里的数据是商品参加过什么活动,商品的畅滞销状况,商品的主推与否等和运营过程中息息相关的非常有分析价值的数据。

目前可行的方式是:在各个系统里手工导出所要的数据,再进行数据加工整合,这些整合工作落在Excel上,简单任重道远,Excel的设计初衷也不是为了整合这些大块头的数据源。大规模的数据更适合的处理场景莫过于使用数据库的方式

一般用户对数据库的驾驭能力有限,不能指望普通用户可以无痕地在Excel与数据库两者之间自由切换。借助Excel催化剂,仅需少量IT人员的技术支持,就能实现在各种系统内导出的Excel文件、业务人员手头维护的Excel文件等数据,轻松上传到数据库中存储。

建立数据仓库,多种数据源整合存储不再是遥远的梦想

业务人员与IT技术人员分工

业务人员职责
  • 有一定的数据库的管理数据思维,如: 同一主题的数据使用一个表存储,每一列的数据类型要相同,数据类型分为文本数字,日期三大类。
  • 收集各系统内的导出数据,尽量按主题整理好成为一张大表数据,如电商平台导出的不同主题的分散在多个Excel文件的数据,按同一主题合并多个Excel文件的数据至一个工作表中存放,可使用Excel自带的官方PowerQuery插件轻松实现
IT人员职责
  • 开通数据库访问权限,可有限度地仅开通查询、删除、插入指定表的权限,减少数据库管理风险。
  • 根据业务人员提供的数据源表结构,在数据库中新建对应的表用于业务人员上传数据至数据库中存放。
  • 后期多表数据整合,可根据业务人员需求,把多个表的数据进行关联查询,返还业务人员一个视图,供业务人员对上传的数据进行自行查阅使用(使用第19波查询篇可自助操作完成)

视频演示

后期将推出直播课程,可私信我获取直播地址或视频地址

具体操作流程

先在Excel上把要上传的数据以智能表的形式存放

Excel智能表的使用,可以让数据管理和维护更加方便智能,可以找寻相关资料学习它的好处,强烈建议日常使用中多多使用智能表。

先创建一个智能表

按Excel智能表上的列名称及数据类型,在Sqlserver上建立表
  1. Sqlserver上建表过程中,可对表进行一些索引、主键等额外设置,可用于检验Excel表上传上来的数据是否和预期的主键信息一致,防止Excel表的数据不严谨出现重复数据等
  2. 同时在Sqlserver预留了两个字段 【数据上传时间】和【UploadTime】,用于上传数据过程中检验是否上传成功和后续对重复数据进行去重处理时的依据。
  3. Sqlserver上表的字段名称需和Excel智能表的列名一致,顺序不作要求。

在Sqlserver上的SSMS上建表操作

选定需上传的智能表任一单元格,点击【SQL数据上传】

当没有选定智能表任一单元格时,需要在点击【SQL数据上传】出现的对话框中选择需要上传的是哪个智能表,一般建议操作流程是需要上传哪个表,就跳转到哪个表所在的工作表,并选择智能表任一单元格,好让程序知道你要上传的数据是哪些。

点击【SQL数据上传】

填写上传表对应的数据库表信息

若过往有填写过相关的数据库表对应的连接信息,可双击【目标数据库表名称】的右侧文本框,弹出历史设置过的数据库连接。双击某个符合要求的记录即可快速调用历史连接信息

双击【目标数据库表名称】的右侧文本框弹出选择对话框

双击历史连接后的效果

根据需求选择增量上传或覆盖上传
  • 增量操作仅对Excel上的智能表数据进行上传操作,Sqlserver上的目标表的数据不作删除处理,对一些以时间有关的流水数据较为合适
  • 覆盖上传是在上传前对Sqlserver上的目标表上数据进行清空操作,每次覆盖上传后,Sqlserver上的数据和Excel智能表上数据保持一致。适合用于一些数据量不大的属性方面的数据使用,如商品信息表,店铺信息等。

数据上传成功

数据已上传至Sqlserver,且自动多出一列标识数据上传的时间

每次都需要配置Excel智能表与Sqlserver目标表的信息吗?

对于追求极致用户体验的Excel催化剂来说,这种能够让程序完成的不体现人类价值的活,必须让程序自动去完成,下次再要上传数据时,当点击【SQL数据上传】时,将自动把上次已设置好的数据库对应表连接信息给填充出来,只需点击下上传按钮即可。

总结

让Excel专注做用户体验部分,目前没有哪个工具软件的普及率能够与Excel相比,这么好的工具,再加上一点点的二次开发,让其充分发挥其价值所在,本篇的数据上传操作,在专业ETL群体中可能不觉得是件什么新鲜事,但如果可以让普通Excel用户接近自助式地完成数据从Excel或其他渠道到专业的数据仓库中,这将是一件很有爆发力的事情。为将来激活整个企业的数据资产带来极大的想像空间,试想在数据库环境里处理个百万级别的数据是何等地轻松,而同时可以把各方的数据都整合进一个数据库环境中操作,是多么惬意的事情。

0 人点赞