Excel解析与导入数据库(数据治理)

场景

虽然数据库技术和大数据已经广泛使用,公司打造内部数据平台时,对基于关系型数据库,或者是格式标准的文件,例如JSON,XML,CSV等数据一体化都相对容易。因为这些数据载体标准,变化可控,易于分辨,且都有成熟的工具/包,来辅助抽取和解析。

生产生活中,Excel文件仍然是常见数据承载媒介。公司运作的过程中,也会产生很多有价值的数据,存在易于阅读和方便传播的Excel文件中。Excel文件没有统一的格式,数据编排方式完全依赖个人的习惯和偏好,不可能被标准化

当想把这些数据落地存储为公司的数据资产时,很难用一套通用程序来处理。虽然现在满天飞各种数据中台类产品,但只能解决企业内标准化数据源(90%都是关系型数据库)的整合问题,几乎不涉及存储在excel中的数据,导致这些文件中的数据都是游离在公司数据体系之外的。

适用对象

哪些情景,或者说工作环境中有对Excel数据治理的需求呢?总结了一下大概分成四类:1. 工作业务流程接触很多excel中的时序数据。这些文件可能是内部产生的,也可能是外部产生的。主要依靠人阅读的方式消费文件,需要提升效率; 

2. 公司产生很多有价值的数据,都在excel中,想把它数字资产化; 

3. 公司有一定的IT基础,数据架构很完善,数据中台基本都已成型,想打通零散的Excel线下数据; 

4. 数据公司。汇聚各类细分数据源的Excel文件,生产自己的EDB指标;

痛点

要完成上面的目标,有个痛点一定绕不过去,就是自由格式的Excel文件解析。 Excel传统上一般有3种处理方式:

1. 格式简单/标准

标准的二维矩阵形式,可用ETL工具直接导入。比如kettle,指定sheet名,数据起始的行列,preview一下数据,自动识别出列的格式,生成二维表。

直接用Python中的pandas读取也都很容易;或者Navicat都可以把直接导入数据库表中。

2. 格式复杂

有两种处理方式:

2.1 定义一个中间标准模板态(一个模板Excel)。把非标准形式的excel文件手工往这个形式转换,后者再用程序批量处理;

2.2 对每个Excel文件的每个sheet,写单独的程序去解析;

即使通过上面几种方式实现了,当文件中的数据内容、排版方式发生变化时,比如数据中间插入了一行或者一列,某个sheet改名了,单元格的指标名称改了等等,靠人或者程序去识别这类变化,都非常困难;文件改变后,还要对(手工)转换过程或者代码做相应的修改和测试,也很耗时。

识别文件内容变化,以及根据变化迅速调整处理逻辑,是解析的难点。当然,更为重要的,是用低成本(人、时间)迅速响应数据格式的变化。

格式自由

Excel格式因人而异,没有标准,想怎么弄就怎么弄。比如:

季频和年频数据混合,且都有预测值。A列的含义丰富,既有分类,又有不同指标,还有同比
6月和7月每个日期下面有3个指标;8月之后,每个日期就只有2个指标了;日期是合并单元格;
水平+垂直方向组合才构成完整的日期;A列看到的值和真实的值不同;
A,B,C三列组合为日期;日期是合并单元格;旬频定位不到具体的日期值;
两行组合为日期;上中旬、月(而不是下旬)混合;A列的值有层级关系;

上面只是个别样例,真实的情况难以穷尽,各种让人“大开眼界”的格式都会出现。

治理目标

Excel解析在很多公司和人的眼中,只是个小东西,随便找个人,写写Python就能搞定的,这没错,但为何笔者认为需要一个专业的Excel治理方案呢?


主流方法把Excel单元格的值抠出来放进表中并不难,但缺点也很明显

kettle等ETL工具,能够处理格式标准的excel文件;最不济,找人针对一个个具体的excel样式写代码,也最终可以把数据导入到数据库中去。可行性是有的,但是解决成本很


Excel治理上,笔者认为有3种段位:

1.数值入库

将单元格读入数据库表中,类似Wind导出的EDB指标,也能保存表头上的单位、数据来源等其他信息;

绝大部分的Excel入库,也只是做到这一步。

2.指标体系

能够增补业务信息、丰富备注、自定义量纲等;建立表中的数值与Excel源文件的对应关系;

3.主题域

分行业、分类型的多维数据集;根据不同业务需求能灵活生成多种表结构;在解析中涵盖数据规划、业务分析的逻辑,沉淀知识;

Excel治理后,应当能够在数据库中重塑原本数值,并将源文件中混乱的值列、维度列存在表单独的列中


将源文件中分散的数据,汇聚到宽表的不同值列和维度列上


将多个Sheet中的数据,在宽表中用不同维度标识出来


将分散在多个数据文件中,具有相似属性的数据合并在一起;

这种标准格式,很容易就能被类似FineBI、Tableau等分析工具读取和进行多维分析。如果是算法挖掘,更加需要诸如地域、颜色、量纲、型号、品牌、渠道等不同维度的标签能清楚地被界定出来,算法才能进行准确和深入的学习。

在整个治理过程中,通过简单的步骤,不但完成分布杂乱数据的ETL过程,还可从业务视角实现数据的融合。能够对不同Sheet,甚至不同文件中具有相同属性、维度的数据进行灵活的聚合和再分配。将不同文件中、不同sheet中的数据进行自定义分类,建立满足企业级使用的表。

最终,还有一个总览的视图,能够统一地看到所有源文件,与不同数据库中的不同表、列之间的映射关系;数据的更新状态、统计检查结果(异常值,疑似重复,缺失等)。能第一时间定位到数据异常是源头问题,还是过程问题。

总结

Excel数据治理,不是简单的单元格数值入库就结束了,而是加强沉淀数据资产,提升数据价值,扩大使用范围,加速数据传播的优势,


最终从三个视角全面提升企业的数据治理水平。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容