来源:数据驱动智能
什么应该作为我们数据平台建设的指标?虽然在某些情况下,处理的数据量可能是一个有效的指标,但它可能并不全面。例如,处理数TB的数据并不一定意味着机器学习的集成。让我们探讨数据平台评估的潜在阶段,以得出有意义的结论,并确定过渡到更高开发水平所需的标准。
级别 0
在数据平台演进的初始阶段,我认为是 0 级,通过直接访问交易系统并从中查询数据来生成报告。Excel、Power BI、帆软报表或类似应用程序等工具用于以表格或图表的形式收集和呈现数据。虽然这种方法能够快速访问数据,但它存在与数据结构、源性能和延迟变化相关的问题。报告过程往往很慢,特别是当需要手动数据操作来提取必要的信息时。

级别 1
在此阶段,报表和应用程序都在努力解决与每天使用事务系统中数据的大量分析查询相关的性能问题。作为处理方法,IT 部门决定是时候迁移到另一个环境了。
要解决性能挑战,有多种选择。可以投资购买新服务器、创建虚拟机 (VM) 或利用 Azure、AWS 或 GCP 等云提供商提供的服务。是选择具有手动安装的数据库引擎的 VM,还是选择与数据库引擎捆绑在一起的无服务器服务,取决于特定要求。
此阶段的主要目标是从事务数据库中提取数据,并将其存储在单独的数据库或文件中。这种提取有助于缓解与繁重的分析查询相关的问题,否则这些问题可能会阻碍关键系统,例如财务管理系统、CRM 或事务系统本身。
数据提取可以以原始形式执行,也可以通过数据复制过程执行。IT 部门在促进数据传输到指定计算机方面发挥着至关重要的作用。时机是关键;数据提取通常在事务系统中活动较少的时期进行。数据位于计算机上后,可以在 Excel 或 Power BI 等工具中刷新预定义的报表。

级别 2
在第 2 级,组织正在与不一致的数据和数据质量问题作斗争,而分析团队难以满足对临时报告的高需求加剧了这些问题。由于需要详细的业务知识来分析原始应用程序数据,并且历史数据可能无法一致地存储,因此在组织内共享收集的数据具有挑战性。
为了应对这些挑战,组织决定通过建立数据仓库向前迈出重要一步。数据仓库的主要目标是为数据分析创建统一和整合的源,确保具有相同名称的度量值传达一致的含义。数据仓库的内容被设计为易于理解,访问的特点是性能快。该设计具有适应性和灵活性,可在不中断现有数据的情况下适应新数据源的添加。
数据仓库是决策的基础,确保它包含正确的数据来支持明智的选择。这种转换需要升级环境,并考虑在公有云或本地服务器之间进行选择以及选择适当的数据仓库引擎。公有云的热门选项包括 AWS Redshift、BigQuery、Databricks、Microsoft Synapse 和 Snowflake。本地选择可能包括 Microsoft SQL Server、Oracle 和 PostgreSQL。引擎的选择取决于数据量、数据团队的专业知识和特定用例等因素。

除了选择数据仓库引擎之外,选择数据建模方法(例如 Kimball、Inmon 或 Data Vault)也至关重要。完善的数据模型对于适应新的数据源、进行数据分析和利用商业智能工具至关重要。另一个关键方面是工具的选择和 ELT/ETL 流程的开发,以集成数据源、清理和丰富数据、填充数据模型以及提高数据质量。可以使用 Python 或 Scala 等编程语言,并且有现成的工具,例如 SSIS、Informatica、Talend、Nifi、Fivetran、Matillion 等。
这些步骤可以集中对数据进行操作,从而在数据仓库中创建“单一事实位置”。数据仓库到位后,可以开始与高级用户共享数据,从而促进更可靠的报表和仪表板的开发。
但是,当使用新的数据平台时,将遇到与数据治理相关的新挑战。可能会出现一些问题,例如在哪里查找用于特定报告目的的数据、谁可以访问敏感数据以及如何屏蔽敏感数据、如何管理授权以及如何整合来自 ERP、CRM 和外部来源等系统的数据。
解决方案的成熟度将需要实施数据管理工具,包括数据目录、主数据管理、数据分类和数据沿袭。
数据目录:包含元数据的存储库,其中包含用于数据管理和搜索功能的工具,可帮助分析师和其他数据使用者查找特定数据。
主数据管理 (MDM):旨在从内部和外部数据源为客户、商品和业务实体创建主记录,确保一致性和可靠性。
数据分类:根据敏感度将数据分组,例如 PII、PHI 数据和财务数据,定义重要性级别。
数据沿袭:说明通过 ETL 过程从源的数据流,有助于错误调查、增强理解和支持数据分类。
级别 3
在处理大量数据、实时数据和各种来源的组织中,传统的数据仓库可能不足以用于分析目的。数据仓库通常需要耗时的数据建模、架构定义(写入时架构)和结构化数据。此外,庞大的数据量可能成为某些数据仓库引擎的限制因素。这带来了挑战,尤其是当市场要求迅速采取行动以保持领先于竞争对手时。
幸运的是,数据湖的引入解决了这些挑战。数据湖可以以低成本高效存储大量数据,包括非结构化数据。与传统的数据仓库不同,数据湖采用读取时模式方法,允许在没有预定义模式定义的情况下存储数据。为了处理这些数据,通常使用 Apache Spark,在计算集群上处理大规模数据处理。
虽然现代数据湖可能仍需要数据清理和文件格式统一,但这些任务通常比与完整 ETL(提取、转换、加载)过程相关的活动劳动密集型要少。这种灵活性支持快速加入和分析新数据源。
在此设置中,数据工程团队负责引入、清理和扩充数据湖中的数据。随后,数据科学团队可以分析这些数据以提取重要的业务信息,从而帮助做出明智的决策或推出新产品。数据湖的另一个显着特点是它在组织内的集中化,促进了数据孤岛的打破,促进了数据民主化,并减少了大型组织中数据解决方案的重复。
在这个不断发展的数据平台中,需要注意的是,数据湖不会取代数据仓库;相反,两者可以共存,在双层体系结构中相互补充。数据湖擅长通过读取模式方法存储大量多样化的非结构化数据,从而促进新数据源的快速载入和分析。同时,数据仓库对于存储聚合和建模数据仍然至关重要。这些来自数据仓库的结构化数据可以与商业智能工具无缝集成,为分析目的提供全面的解决方案。数据湖和数据仓库之间的共生关系增强了组织处理各种数据类型的能力,并满足实时和结构化分析需求。

双层架构的另一种方法是湖仓一体,其中数据模型直接在数据湖上构建,而无需为数据仓库提供额外的引擎。

这种高级体系结构的一个组成部分是合并流分析,这需要采用 Apache Kafka 等新工具或 Azure 事件中心、Azure 流分析、GCP 数据流、Pub/Sub 和 Amazon Kinesis 等公有云原生解决方案。流分析提供了数据和流程的实时视角,使组织能够实时监控活动并快速响应,与传统的批处理系统相比,传统的批处理系统每天“刷新”一次或几次数据。
通过实现流式处理,可以创建从事务系统实时传输更改的流程。例如,在一家金融公司中,这可以在几秒钟内对可疑交易做出快速响应。这种过程有助于建立“变更数据捕获”(CDC)过程,从事务系统数据库流式传输更改。
另一种途径是利用物联网 (IoT) 流程,可用于从各种环境(例如工厂)中的传感器收集信息。这种方法可以检测意外事件,如设备故障和环境变化,如温度波动或管道泄漏。
级别 4
在数据平台演进的第 4 级,我们利用最先进的技术,突出特点是使用数据湖或湖仓一体以现代格式存储大量数据集,如 Delta Lake、Iceberg、Apache Hudi 或 Parquet。这些格式使数据工程师能够以高度压缩的列格式存储数据,支持分析查询、事务和各种合并/更新/删除操作(不包括 Parquet)。这些格式的采用代表了数据存储效率的重大进步。
此外,我们的平台擅长通过流媒体技术分析来自不同来源的实时数据馈送。在报告中提供实时见解的同时,我们还开始利用机器学习 (ML) 模型的强大功能。这些模型在检测异常、预测设备故障、识别欺诈活动、预测销售趋势和对客户进行分类方面发挥着至关重要的作用。
在这个高级水平上,决策不仅仅是依靠当前的数字;我们整合了从机器学习模型得出的预测。这种变革性的方法不仅使我们能够应对当前的情况,而且能够根据预测分析主动进行规划。

机器学习模型
机器学习模型有多种类型,每种类型都是为特定任务而设计的:

分类:用于模式识别,它可以标记客户端类型、图像和文档类别等实体。
回归:研究自变量(特征)和因变量(结果)之间的关系,通常用于固定价格预测、销售预测和类似应用。
聚类:将相似的数据点分组到集群或未标记的组中,有利于异常检测和市场细分等任务。
时间序列:基于时序数据预测未来数值,适用于预测销售、需求、呼叫、Web流量等场景。
若要部署机器学习过程,通常涉及以下步骤:

定义用例:与业务用户协作,确定模型应预测或识别的内容。
获取数据:确定数据源并将数据引入数据湖或湖仓一体。
准备数据: 浏览和清理数据,根据模型的要求对其进行转换。
训练模型:选择算法和超参数,然后评估结果。
部署模型:利用经过训练的模型生成请求的结果。
可以使用开源库和本地或公有云基础架构来训练模型。例如,在 Python 中,可以使用 Pandas、Scikit-Learn、PyTorch 和 TensorFlow 等工具。Azure 机器学习、BigQuery ML、Vertex AI、Amazon SageMaker 和 Redshift ML 等公有云服务也是有价值的选择。此外,机器学习模型可以 docker 化并托管在公有云中。若要编排 ML 流程,可以使用 Azure 数据工厂、Airflow、Prefect、GCP 工作流和 AWS Step Functions 等工具。
AI 服务和生成式 AI
利用公有云服务可以访问现成的 AI 服务,这些服务具有具有可定制 API 的预训练模型。这些服务的示例涵盖各个领域,包括用于对话、搜索、监控、翻译、语音和视觉的自然语言处理。利用这些服务,企业能够开发尖端产品,实现各种流程的自动化和增强。例如,语音到文本的转换可用于分析客户问题,视觉服务可用于分析图像。
传统的 AI 解决方案专注于理解和推荐信息,而新一代生成式 AI 则更进一步,能够创建全新的内容。生成式 AI 建立在大型语言模型 (LLM) 等技术之上,这些技术基于大量文本数据进行训练,不仅可以生成文本,还可以生成图像、视频和音频。截至撰写本文时,著名的生成式 AI 模型包括 Chat GPT、OpenAI、Gemini、Bard 和 Duet AI。这些服务可以用作内置帮助或集成到应用程序中。在内置帮助的上下文中,它们可以增强各种任务,例如支持在 BigQuery 中编写查询、在 Visual Studio Code 中帮助创建代码或改进营销材料。
级别 5
虽然我们可能还没有达到第 5 级,但人工智能领域的持续创新,尤其是生成式人工智能,将影响数据平台的发展。随着进展的持续,我预见到一种情况,即很大一部分任务和分析将毫不费力地参与人工智能。用户可能会提出有关各类数据的问题,获得及时和有见地的答案。这种演变有望大大改善组织内部对信息的访问。唯一的问题是:我们可以在多大程度上突破人工智能利用的界限,相关成本是多少?人工智能能力和成本效益的交集可能会定义这一变革之旅的边界。

数据网格和数据编织
在分析平台的不断发展中,考虑新兴的架构趋势至关重要,特别要注意数据网格和数据编织等概念。Zhamak Dehghani 于 2019 年推出的 Data Mesh 提出了一种去中心化的数据平台模型,其中面向领域的团队负责交付、维护和确保各自数据产品的质量。这个想法是促进领域团队之间的协作,提高开发速度,让团队专注于他们的专业领域。虽然一些出版物认为数据网格代表了新一代的数据平台,但必须承认其去中心化的性质可能更适合拥有多个数据团队的大型组织。相比之下,在单个数据团队处理所有报告需求的中型或小型组织中,它可能不那么有效。
另一方面,Fabric 强调与数据平台相关的活动的集中化,包括数据摄取、ETL、报告和数据治理。这种集中式方法旨在解决与数据孤岛相关的挑战,促进数据共享并加强协作。但是,必须注意的是,集中式模型可能会在交付中引入瓶颈,尤其是在组织经历快速增长时。
对于考虑这两个概念的组织来说,仔细评估每个概念的利弊至关重要。选择最符合组织特定需求和挑战的方法非常重要,而不是盲目追随最新趋势。

小结
数据平台的开发涉及各种指标的组合,包括架构方法、数据治理、可扩展性、实时数据处理、大数据处理、高级分析等。我们在数据平台开发的不同阶段的旅程表明,从简单的解决方案开始,逐步添加新组件或高级分析(如 ML 和 AI)使我们能够适应和满足不断变化的业务需求。
在数据平台开发领域,通过数据和技术的利用来实现测量。如果仅依赖一个事务系统进行查询,则正处于此旅程的初始阶段。但是,整合 ML 和 AI 会让处于领先地位,使能够满足更复杂的业务需求并超越竞争对手。当然,可能性程度与组织的规模和发展密切相关。迈向更高层次不仅涉及技术的实施,还涉及在公司内部培养“数据素养”。