数据格局指南
通过数据堆栈之旅为初学者提供的数据世界指南。
本文为数据领域的新手以及想要了解构成数据格局的所有工具的背景知识的人员提供了高层次的概述。这里的想法只是为了给您一个大致的了解,以便您在人们谈论这些东西时有一些基本的背景知识。但首先
数据世界的简短幽默历史
在早期,数据存储和操作是一个复杂且昂贵的过程。存储数据需要本地服务器(例如成排闪烁的计算机和电缆,杂乱地放在浴室旁边空调房中)。数据检索可能非常缓慢:查询和操作数据需要数小时,有时甚至数天。
但是工具已经得到了显著改进,尤其是在过去十年中,尤其是在云基础设施兴起之后(云基础设施只是更大规模的计算机,它们位于电缆管理良好的空调环境中,您可以按需租用)。如今,数据的处理速度比以往任何时候都更快、更便宜。现在有大量的工具可以处理数据,这可能会使数据格局看起来比实际情况更复杂。
关于商业智能、大数据和 AI 驱动的洞察有很多讨论,但这些都只是营销术语。大多数企业没有 PB 级的信息,甚至没有 TB 级的信息,而且它们也*不需要*那么多数据。大多数企业只需要能够查询他们*确实*收集的数据,发现趋势并做出反应,并考虑他们希望收集哪些其他数据来解答他们无法回答的问题。许多企业还需要能够向其客户提供数据,例如通过将图表嵌入到其应用程序中。
如今,大多数公司只需要一个简单的数据堆栈,并且它们很容易扩展,以便在您的业务真正起飞时使用。它们也是全面了解数据格局的好方法,因此我们将简要介绍一下基本的数据堆栈,首先介绍一下为什么首先需要数据堆栈。
数据堆栈集中化您的数据,并保护您的应用程序免受可能降低应用程序速度的分析查询的影响
“数据堆栈”只是一个术语,指的是管理数据从源到仪表盘的整个旅程的一组软件。构建与应用程序数据分离的数据堆栈是有成本的,但数据堆栈的优势本质上是双重的
- 数据堆栈不会因好奇的分析师的查询而降低应用程序数据库的速度。这些查询可能会跨越大量数据,这会占用数据库的资源,并使无辜的用户使用您的应用程序时速度变慢。
- 数据堆栈集中化您的数据,包括来自应用程序以外的其他来源的数据,并以易于查询的方式组织数据。
数据堆栈层概述
在高层次上,数据堆栈由四个层组成
这些层在某种程度上是任意的,并且它们会重叠(尤其是转换和建模层)。您可以争辩说还有其他层(如数据治理或数据监控),但这四层是主要的。
数据源层
企业从他们的应用程序收集数据,但他们也从第三方应用程序和服务中积累了大量数据。数据可能来自
- 生产数据库。有时称为事务数据库、操作数据库或应用程序数据库(或简称为“Prod”)。也就是说,您的软件在执行其功能时用于存储所有数据的数据库。
- 操作应用程序。来自社交媒体、客户关系管理和支付提供商应用程序及 API 的数据。
- 外部数据。来自第三方的数据,例如 Web 分析(例如,Google Analytics)或人口统计数据、市场数据、地理空间数据等。
数据摄取和数据集成
您的公司必须从所有这些不同的来源获取数据。自行处理所有这些数据可能非常耗时,因为您必须从每个应用程序的 API 中抓取数据。因此,一种选择是使用维护与这些应用程序的连接器的服务。这些有时称为集成和摄取工具,包括以下工具:
- Fivetran
- Stitch
- Zapier
数据转换和建模层
通常,尝试分析来自多个来源的未修改数据是一场噩梦:数据分散在各处,回答简单的问题可能需要查询多个不同的表才能获得所需的数据。
数据堆栈的转换和建模层是关于将数据转换为易于查询和探索的“形状”。其想法是构建称为 ETL 的计划流程,该流程抓取大量数据,然后将该数据转储到您的数据仓库中。在某些情况下,ETL 会批量抓取数据(例如,每晚一次);它也可以流式传输,这意味着数据会在应用程序记录数据后立即发送到数据仓库。
非详尽的转换列表
- 从 .csv 或 JSON 格式获取数据,并将该数据插入到关系数据库中。
- 将来自多个来源的数据聚合到单个数据集中。
- 更改数据格式,例如,从 JSON 更改为 CSV。
- 筛选掉数据,或填充数据中的空白。
ETL:提取、转换、加载
ETL 是脚本,有时称为作业,用于从各种来源(包括已存储在数据仓库中的原始数据)提取数据,转换数据,并将转换后的数据加载到数据仓库中
ETL 代表 提取、转换和加载
- 提取: 一组查询或 API 请求,用于抓取原始数据。
- 转换: 用于准备数据以进行分析的查询或脚本(即,使数据易于查询)。
- 加载: 一组查询,用于将转换后的数据加载到数据仓库中。
这听起来很复杂,但它实际上只是一系列正在运行的脚本。一个超级基本的 ETL 作业可能如下所示
- 从包含客户数据的三个表中查询数据。
- 更改“地址”列中的所有值以使用大写字母。
- 如果“州”列中没有值,则从邮政编码中查找州,并将州插入到“州”列中。
- 将结果插入到数据仓库中的
CUSTOMER
表中。
在过去几年中,ELT(不是 ETL)变得越来越流行(即使每个人仍然只说 ETL)。ELT 的想法是使用数据摄取工具将来自源的大量原始数据加载到数据仓库中,无论其采用何种格式,然后运行 SQL 查询,该查询获取该数据,将其转换为易于查询的表或列,并将该数据保存在数据仓库中。
ELT 路径的基本原理是,通常更容易先将原始数据加载到数据仓库中,然后再对其进行更复杂的转换(而不是在将数据放入数据仓库之前对其进行转换)。另外,如果您需要原始数据,那么您也拥有原始数据(存储已变得非常便宜)。
延伸阅读
数据建模
数据建模是一个抽象术语,在不同的上下文中具有略微不同的定义,因此即使您以前遇到过该术语,您可能仍然不完全确定您是否理解人们到底在说什么。
数据建模是指决定您要收集哪些关于真实世界的数据,以及如何以有用的方式将您收集的数据组织到数据库的表中。基本上就是这样。如果您有一个名为“客户”的电子表格,那么您的客户“模型”就是该电子表格中的一组标题:姓名
、地址
、电子邮件
等,这些标题从您的业务角度描述了您的客户。您如何“建模”您的客户取决于您的业务如何运作。您的客户模型是否需要包括“食物过敏”?“平均打字速度”?“水肺认证状态”?
数据建模也可以指数据在数据库中的存储方式。因此,不仅要定义列(有时称为字段)及其数据类型,还要定义这些列如何在表中分组,以及这些表如何链接在一起以形成更大的图景。例如,您可能希望将“客户”模型链接到“购买”模型,以了解谁在购买什么。
所有这些转换的原因是,用于应用程序的数据模型通常不适合分析。您为应用程序建模数据的方式通常针对创建、读取、更新和删除记录进行优化。您有时会听到首字母缩略词 CRUD(创建、读取、更新、删除)。您的数据在您的应用程序中具有“形状”(如行和列),您希望在数据仓库中重新塑造这些行和列,以便更轻松地过滤和汇总表格。
数据转换和建模工具
- dbt - 是一款用于构建、测试和记录数据模型的开源工具。dbt 位于您的数据仓库之上,并使用 SQL 转换已存储在数据仓库中的数据。
- Apache Airflow - 一款开源数据工作流管理工具,可以与 Fivetran 或 Stitch 结合使用。它可以用于监督 Fivetran 或 Stitch 任务的执行。
- Metabase。一些分析工具(如 Metabase)还允许人们自行建模数据。这样,人们就可以动态地建模数据,并在响应业务变化时改进其客户或产品模型。
延伸阅读
数据存储层
转换数据后,您需要将其放在某个位置,以便在需要时轻松检索。
有不同的数据库类型,但出于数据堆栈的目的,我们将主要讨论此处数据库的两个主要类别:事务数据库和分析数据库。
事务数据库
事务性数据库 用于支持软件。它们使用表(关系)来组织列(属性)。
- MySQL
- Oracle
- PostgreSQL
- SQLite
- SQL Server
分析型数据库
分析型数据库 的结构旨在简化分析查询(例如,类别 a、b 和 c 中所有产品的平均价格是多少?)。它们通常使用列式存储,其中数据按列收集,而不是表中的列。分析型数据库的示例包括
- BigQuery
- Hydra
- Redshift
- Snowflake
- Vertica
数据仓库 是用于存储组织希望分析的所有数据的数据库。数据仓库有时指代像 Snowflake 或 BigQuery 这样的分析型数据库,但像 PostgreSQL 和 MySQL 这样的事务性数据库已经非常出色,并且(通过适当的建模)可以轻松处理大多数分析工作负载。因此,除非您正在处理非常庞大的数据集,否则像 PostgreSQL 这样的强大的关系数据库管理系统 (RDBMS) 可能就是您构建数据仓库所需要的全部。无论哪种情况,数据仓库通常都在云端运行(在 Amazon Web Services、Google Cloud Platform、Microsoft Azure 等上),因此公司不必担心构建自己的服务器来运行数据库。
数据湖 是非结构化数据的存储库。您可以将它们想象成大型分布式文件系统,其中包含文件夹和文件。您可以使用数据湖以各种格式(CSV、视频、JSON、声音文件等)转储数据。一旦数据进入数据湖,您可以使用 Presto 或 Athena 等查询引擎来查询数据,格式化和建模数据,并将建模后的数据加载到数据仓库中,供分析师探索。
延伸阅读
数据分析层
数据分析是数据堆栈的可视化层。有时也称为数据分析或商业智能。在这一层,您制作数据表格和图表,向其他人展示您知道自己在做什么,并且我们绝对不是在胡编乱造。
一旦数据被转换并加载到您的数据仓库中,您可以将 Metabase(抱歉,是商业智能平台)这样的可视化工具连接到您的数据仓库,以“解锁洞察力”。
一些 BI 工具还包括用于建模数据的工具,在某些情况下还包括写回数据库的功能(即,允许您创建、更新或删除记录),这为构建与您的数据一起工作的后台应用程序开辟了各种可能性。
数据分析工具
像每一层一样,您有很多选择
- Looker
- Metabase
- Mode
- Power BI
- Redash
- Superset
- Tableau
延伸阅读
- 嗯,实际上,大部分的 Learn Metabase 都是。
下一步:数据库类型
关于不同类型的数据库及其工作原理的须知。