过去,传统数据仓库采用“写时架构”方法。这意味着,您必须先完美地定义数据结构,然后才能保存数据。虽然这种方式让一切井井有条,但往往速度缓慢且缺乏灵活性。如果数据格式发生轻微变化,整个系统都可能会停止工作,直到工程师手动修复。
奖章架构遵循现代湖仓一体范式,在原始数据层中采用“读时架构”。这样,数据就可以立即以原始形式落地。您只需考虑结构,因为数据的业务价值已经明确。这种工作方式更加灵活,公司可以先收集数据,然后再决定如何使用。
在奖章架构中,数据就像河流一样流经三个主要阶段:青铜级、白银级和黄金级。随着数据从一个阶段进入下一个阶段,数据会变得更干净、更有条理。这种设置让工程师能够尽早修正错误,并为不同用户提供适合其特定任务的正确版本的数据。
青铜层是所有传入数据的着陆区。您可以在此处存储来自 Web API、IoT 传感器或事务型数据库等来源的原始未处理信息。您不会在此处更改数据;而是以其原始格式(例如 JSON、CSV 或 Parquet)保留数据。
工程师通常会为这些文件添加时间戳,以显示它们到达的时间。青铜层充当永久性历史归档。如果您以后在计算时出现错误,可以随时返回到这些原始数据并重新开始。它可确保您永远不会失去业务运营的“真实情况”。
您可以将白银层视为“可信来源”。在此阶段,来自青铜层的数据会被彻底清理。工程师使用工具来过滤掉垃圾数据、移除重复记录并修复缺失值。他们还会标准化格式,例如确保每个日期都遵循相同的模式。
白银层将不同的数据集联接在一起,以清晰地呈现“客户”或“产品”等核心业务项。这一层非常适合自助式分析。它足够简洁,适合大多数人使用,但又足够详细,可以回答各种各样的问题,而不局限于一份特定的报告。
黄金层包含最精炼的数据。这些信息是根据特定的业务需求量身定制的,例如月度销售报告或预测客户流失的机器学习模型。黄金层通常使用“星型架构”或针对快速读取进行优化的表,而不是原始列表。
由于这些数据已经过汇总和计算,因此在信息中心内加载速度非常快。数据科学家可以使用黄金表来查看“每个区域的日活跃用户数”,而无需自行联接数百万个原始行。这是旨在为公司提供即时价值的最终产品。

采用分层方法有助于团队更快地行动,并降低犯下代价高昂的错误的风险。它为如何处理数据提供了清晰的路线图,随着公司的发展,整个系统也变得更易于管理。
增量数据质量
将数据流水线分解为不同的步骤,可以大大简化调试过程。如果信息中心显示了错误的数字,工程师可以先检查白银层。如果白银数据正确,他们就知道错误出在黄金转换逻辑中。这种隔离有助于团队在几分钟内(而不是几小时内)找到并修复 bug,从而保持数据传输的稳定性和可靠性。
时间旅行和可再现性
通过在青铜层保留完整历史记录,组织可以随时重新运行整个数据流程。这在业务规则发生更改时非常有用。例如,如果财务团队更改了“利润”的计算方式,您可以重新处理所有旧数据,以符合新规则。这种“时间旅行”功能还有助于进行审核,因为您可以准确证明过去任何时间点的数据是什么样的。
普及数据访问
公司中不同的人员需要不同类型的数据。数据科学家通常需要使用青铜层中的原始数据来训练复杂的 AI 模型。同时,业务分析师只需要黄金层中干净、完整的数字来制作图表。通过奖章架构,每个人都可以访问所需的特定层,而不会互相干扰。
构建此架构需要制定明确的计划,以便在存储和计算工具之间移动数据。您可以按照以下四个步骤设置可靠的流水线。
首先,设置自动流水线,将数据从来源移至可扩缩的存储区。您可以使用 Dataflow 等工具进行实时数据或批量加载,以实现每日更新。这里的目标是将数据转储 (dump) 到“存储桶”中,而不更改数据。这样可以确保在迁移过程中不会丢失任何信息,也不会意外更改任何信息。 |
首先,设置自动流水线,将数据从来源移至可扩缩的存储区。您可以使用 Dataflow 等工具进行实时数据或批量加载,以实现每日更新。这里的目标是将数据转储 (dump) 到“存储桶”中,而不更改数据。这样可以确保在迁移过程中不会丢失任何信息,也不会意外更改任何信息。
接下来,使用 Apache Spark 或 SQL 等处理引擎清理原始青铜层数据。在此步骤中,您将应用数据质量规则。您可能需要将所有时间戳转换为标准时区(例如世界协调时间 [UTC]),或者从用户列表中移除测试账号。许多团队会将这些结果写入 Delta Lake 或 Apache Iceberg 等开放表格式,这有助于保持数据井井有条、方便搜索。 |
接下来,使用 Apache Spark 或 SQL 等处理引擎清理原始青铜层数据。在此步骤中,您将应用数据质量规则。您可能需要将所有时间戳转换为标准时区(例如世界协调时间 [UTC]),或者从用户列表中移除测试账号。许多团队会将这些结果写入 Delta Lake 或 Apache Iceberg 等开放表格式,这有助于保持数据井井有条、方便搜索。
在白银层中清理数据后,您可以创建专门的 SQL 查询来构建黄金表。这些查询将不同的表联接在一起,以创建特定指标,例如“按类别划分的收入”。这些数据通常存储在高性能视图中,可直接插入到 Looker 等可视化工具中。 |
在白银层中清理数据后,您可以创建专门的 SQL 查询来构建黄金表。这些查询将不同的表联接在一起,以创建特定指标,例如“按类别划分的收入”。这些数据通常存储在高性能视图中,可直接插入到 Looker 等可视化工具中。
最后,您需要一种方法来安排这些步骤,以便它们自动执行。Google Cloud Managed Service for Apache Airflow 等工具可以管理作业的执行时间。您还应实施严格的安全政策。例如,您可以允许所有人读取黄金层,但只允许少数获得授权的服务账号写入或更改白银层和黄金层中的数据。 |
最后,您需要一种方法来安排这些步骤,以便它们自动执行。Google Cloud Managed Service for Apache Airflow 等工具可以管理作业的执行时间。您还应实施严格的安全政策。例如,您可以允许所有人读取黄金层,但只允许少数获得授权的服务账号写入或更改白银层和黄金层中的数据。
Google Cloud 提供了一套强大的工具,让实施奖章架构变得简单明了。这些服务负责处理扩缩和安全方面的繁重工作,让您的团队可以专注于从数据中获取数据洞见。





