前面写了一些现代数据技术栈的文章,包括其中的一些公司。之所以现在围绕着云端,有这么多数据技术公司在努力的创新,其核心目的是为了让自己服务的客户能够更方便、更简单的使用数据,从而能够让数据价值发挥出来。今天就来谈一个让数据能够更好发挥价值的话题-数据民主化(data democratization)。
什么是数据民主化
Data democratization means that everybody has access to data and there are no gatekeepers that create a bottleneck at the gateway to the data. The goal is to have anybody use data at any time to make decisions with no barriers to access or understanding - Bernard Marr
上面是美国的大数据和AI专家,同时也是很多大数据相关书籍(《数据战略》,《智能革命》等等)的作者对于数据民主化的一个定义。总结起来就是:数据民主化是让一个组织中所有人都可以无阻碍的去访问需要的数据,从而让这个组织中的每个人都可以随时随地的基于数据去做决策而不会受到限制。
从这里可以提取到几个关键词:每个人,无阻碍访问数据、随时随地、数据驱动决策。这与传统上企业使用数据的方式就有了很大的区别。一般情况下,企业使用数据是有专门的数据团队(数据分析师、数据科学家、数据工程师)根据企业的业务需求,去整理和准备数据,然后形成报表帮助企业决策层或者业务决策层辅助决策或者形成自动化决策流程去进行自动化决策。
为什么要实现数据民主化
之所以要实现数据民主化,应该与当今企业和组织发展的诉求密不可分。当今的世界是个高速发展,并且充满不确定性的世界。有一个词用来描述当今的时代叫做VUKA时代,就是所谓Volacity(易变), Uncertainty(不确定性), Complexity(复杂性),Ambiguity(模糊性)。在这个快速易变的社会,一个企业或者组织如果还是采用过去集中式的、小部分人使用数据来进行决策,就非常可能出现决策跟不上变化,决策执行过程也经常会因为执行过程中缺乏应变能力最终使得企业或者组织跟不上外界的变化最终被无情的市场环境所淘汰。企业真正地实现数字化并且将数据驱动决策下沉到基层已经变成了现代企业追求的目标。这就要求企业能够达到企业内部任何需要数据来帮助自己工作中基于数据做决策的员工都可以访问和使用与自己工作有关的数据,并且不需要专业的技术知识,就能够处理和理解数据,并根据数据做相关的决策。
实现数据民主化的挑战
数据民主化的愿景是美好的,不过一个企业想要实现数据民主化,却要面临不同的挑战。
组织结构的挑战
传统的组织结构是自顶向下的层级结构,决策是上层做出,每层分解,然后最基层去执行。在这种结构下,如果决策清晰并且正确,在决策的时候把执行的路径如果也做了比较清晰的定义,在一个相对稳定的环境中,无疑俱备更高的执行效率。但是在多变的环境中,为了适应变化,企业或者组织的组织结构可能就需要进行一定的变化,从多层层级结构变得更为扁平。组织的目标可以被组成的单元理解,然后组织单元会根据组织目标确定自己的目标,组织成员也会根据目标确定个体目标。每个组成的小的组织和个体会根据自己的目标以及获取的数据,进行决策。只有组织结构支持决策的下放,数据民主化才有真正的价值。而决策的下放,也使得每个决策单元都需要数据来帮助自己做决策。组织结构的变革是数据民主化能够真正实现的前提。
技术的挑战
除了组织的挑战,数据民主化也需要技术和工具上的支撑。企业的数字化过程不是一下子建起来的,大部分的企业都是先有支持自己核心业务的信息化系统,然后再逐渐完善和构建自己的数据系统。不同阶段的企业的信息化系统的技术架构也大不相同。要实现数据民主化,首先要使得企业中所有的数据能够被发现,这就需要企业有一个完备的并且能够随时更新的数据目录系统。其次,企业的所有的数据还要能够被企业中所有的想使用数据的成员去访问数据,这可能需要建立一个集中的数据仓库或者数据湖来把企业所有的数据集中在一起。也可能通过构建一个虚拟的访问层,从而不用搬动数据就可以让成员访问数据。另外,由于企业的数据有不同的安全级别,数据的访问还要有一定的安全访问控制,同时要能够遵循合规的要求。在数据可以访问的基础上,还应该提供不同的水平的人可以使用的不同的工具。数据科学家喜欢用Python, 数据工程师和部分分析师用SQL,而一部分数据分析师,业务分析师,普通的业务人员或者运营人员则喜欢用Excel就能过访问和处理数据。数据处理的过程要能够被记录和审计。因为不同的人在访问和处理数据,就需要有系统能够支持数据之间的血缘关系,数据处理的知识最好可以被记录和分享,因为过程数据也是非常有价值的数据。让不同能力的人方便的处理和使用数据后,最好能够让数据可以非常方便的生成可以支持决策的分析结果或者可以被调度为数据加工流程,数据流的结果最好能够再方便并且及时的同步到业务系统从而能支持自动的业务决策。所有的这每一个需求点,都代表着不同的技术工具。而因为每个企业本身业务系统就很复杂,使得能够支持完成这些工作的工具就需要不同的创新来满足不同类型的需求。下面结合我自己对数据民主化的需求,总结出来的一些技术的要求以及可能的实现路径。
数据民主化的技术需求
想要实现数据民主化,实际上关系到数据从被发现到数据使用的多个环节。具体的可以分为:数据发现和数据集成、数据清洗和准备、数据编排和生产、数据运营。由于后边的两个阶段更偏重于技术引擎以及dataops,这篇文章我们侧重在前两个阶段。
数据发现和集成
数据发现过程是实现数据民主化的第一个步骤。实施过任何企业数据相关项目的朋友都知道进入企业第一件事情就是数据调研工作。需要了解企业中有哪些数据源,数据的schema都怎么样?然后进行数据的标准化和集成,把数据汇集到目标数据仓库或者数据库中。
提到数据发现,就不得不提数据目录和数据血缘相关的系统。可是非常遗憾的是一般的传统企业由于太多的遗留系统,数据目录或者数据血缘相关的系统是没有的。很多情况下是散碎在不同时期不同人员整理的文档中。稍微好一点儿的会有一个相对集中的文档存储来管理,但是往往文档和实际的数据又是存在不小的差异。新兴的公司,很多在用不同的技术构建自己公司的数据目录平台。我自己在上一家公司工作时,曾经主导过构建我们公司的数据目录产品-血缘。不过结果也不太成功,最终又回到了用confluence来维护数据目录文档的相对原始的情况。目前在海外,有一些不同的公司在做数据发现和数据目录相关的产品,比如开源工具DataHub(Linkedin开源)的团队创业做的Metaphor, 由Lyft开源的Amundsen演变出来的Stemma等等。国内有从Erwin团队出来创业的数语科技。我后边会专门写一下数据发现和数据目录相关的产品。
在集成过程中,不同类型的企业采用的技术就会有所不同。如果企业是新型的,完全以云端数仓CDW为核心来构建系统,这个阶段可能采用的工具在海外可能就是Fivetran,Stitch, Airbyte等等。如果不是以CDW为核心,企业有很多遗留系统,则可能会采用Informatica, Talend等等公司的工具。在国内,由于很多企业还是传统私有化部署,并且有很多遗留的不具备很好的数据集成接口的内部系统,在这种情况下可能会混合不同的技术来实现数据发现和集成。比如可以采用Informatica、Datapipeline, TapData或者开源的SeaTunnel做从数据库、消息中间件、API等的数据集成,辅助于RPA技术,去通过模拟应用系统登录,抓取应用系统的数据来完成数据集成工作。
数据发现和集成过程,因为牵扯到非常多的数据来源,而数据来源往往跟业务系统密切相关,因此很多情况下是业务需求驱动去查找和接入数据。对于数据民主化来讲,如何能让使用数据的人更好地找到自己需要的数据,如果数据没有被集成,是不是有开箱即用,不需要技术的帮助就能实现数据的集成就很关键。如果集成的确需要技术的帮助,数据发现和集成的系统是否支持通过组织协同来实现相关的需求到实现,从而让相关的工作不会变成重复性劳动?这些都是相关的工具需要创新和提高的地方。
数据探索和准备
在能够方便的发现和访问数据之后,就需要有不同的工具去服务于不同的使用数据的角色。实际上,企业使用数据做决策已经有几十年的时间了,在这几十年时间里,用于数据探索和准备的工具也一直在发展。有了数据库之后,SQL就是最初用于数据探索和准备的工具。到目前为止,SQL还是最直接的进行数据探索和数据准备的工具。只不过,SQL算是一种面向机器的语言,并不是所有的人都能够掌握SQL语言。另外,随着数据科学的发展,python也是一种数据探索和准备的工具,数据科学家或者资深的数据分析师一般会采用Python来进行数据探索和准备。另外,对于普通的不懂SQL或者Python的数据使用者来讲,传统的敏捷BI可以帮助普通使用者去使用数据。当然,如果数据规模不大,而且数据已经比较格式化,Excel是更贴近普通用户的工具的选择。
随着技术的发展,尤其是云技术的发展,新的一个趋势是数据都以云端数仓为基础进行构建自己的数据系统。当然,对于传统的企业来讲,想走到这一步还需要克服很多的困难,而且最可能的结果可能是混合云的架构。在新的趋势下,数据探索和准备的工具也需要适应新的形式的需求。在这其中,服务于分析工程师有了支持SQL工程化的dbt。服务于数据科学家更方便地进行交互式探索的有开源的Apache Zeppelin。但是对于普通的不具备SQL或者python能力的数据使用者来讲,还缺乏有效的工具。微软的Excel+PowerQuery能够解决一部分问题,但是与现在的主流的云原生趋势并不相符。Trifacta在交互式数据清洗方面有不错的尝试,不过在稍具规模的数据上体验却不如人意,最近也刚刚被Altrix以接近5亿美金的价格收购。Sigma Computing有不错的体验,但是易用性上还有一定的改善的空间。这也正是我们团队的产品想要去解决的问题。
总结一下
数据民主化是目前海外数据领域一个比较热门的词汇,我个人认为这跟海外的社会环境以及企业发展的现状密不可分。对于国内来讲,由于我们国情的不同,数据民主化应该还有相当长的一段路要走。我个人认为相关的产品和工具可能也会先在海外获得一定的成功,然后根据国内发展情况,再在国内适配中国的情况落地。一个比较可喜的局面是国内无论从国家战略,还是到企业的认知,大家都对数据驱动有了一个共性的认知,相信以我们国家的执行力,一个有中国特色的数据技术工具生态,一定会逐渐发展起来。




