可靠性的最佳实践

本文介绍的最佳实践可靠性组织架构原则在下面几节中列出。

1。设计为失败

使用三角洲湖

三角洲湖是一个开源的数据存储格式,bob下载地址将可靠性湖泊。三角洲湖提供ACID事务模式执行,可扩展的元数据处理,结合流媒体和批量数据处理。湖三角洲湖上运行你的现有数据,与Apache火花api完全兼容。三角洲湖砖允许您配置的三角洲湖上基于工作负载模式。看到三角洲湖是什么?

使用Apache火花或光子分布式计算

Apache火花,砖Lakehouse的计算引擎,基于弹性分布式数据处理。内部引发的任务不返回结果不出所料,Apache火花将会自动地安排失踪的任务和继续执行整个工作。这是有利于故障代码外,像一个短的网络问题或撤销VM。使用SQL API和火花DataFrame API提供了这种韧性内置引擎。

砖Lakehouse,光子本机矢量化引擎完全用c++写的,是高性能计算与Apache火花api兼容。

自动救援无效的或不相容的数据

无效的或不相容的数据可能会导致崩溃的工作负载,依赖一个确定的数据格式。增加端到端的整个过程的弹性,最佳实践是在摄入过滤无效和不相容的数据。支持拯救数据确保你永远不会失去或错过在摄取或ETL数据。获救的数据列不包含任何数据解析,要么从给定的模式,因为它不见了,因为有一个类型不匹配,或列套管的记录或文件不匹配的模式。

  • 砖自动加载程序:自动加载程序是最理想的工具流媒体文件的摄入。它支持获救的数据JSON和CSV。例如,对于JSON,获救的数据列不包含任何数据解析,从给定的模式,可能因为它是缺失的,因为有一个类型不匹配,或者因为列的套管不匹配。获救的数据列是自动加载器返回的模式的一部分_rescued_data默认情况下,当模式被推断出来的。

  • 三角洲生活表:构建工作流韧性的另一个选项是使用三角洲生活表与质量约束。看到管理数据质量与达美住表。开箱即用的δ生活表支持三种模式:无效的记录保留,下降,失败。检疫发现无效的记录,期望规则可以定义在一个特定的方式,这样无效的记录存储在另一个表(“隔离”)。看到检疫无效数据

配置自动重试和终止工作

分布式系统是复杂的,一个失败可能会波及整个系统。

  • 砖的工作的支持自动重试策略决定什么时候,多少次失败运行是重试。

  • 三角洲生活表也自动故障恢复使用升级重试平衡速度与可靠性。看到开发和生产模式

另一方面,一个任务挂可以阻止整个工作完成,从而导致高成本。砖的工作支持超时配置的终止工作比预期要长。

使用一个可伸缩的生产级模型和基础设施服务

对于批处理和流媒体推断,使用砖工作和MLflow部署模型作为Apache火花udf利用作业调度,重试,自动定量等等。看到离线预测

模型服务生产级模型提供了一个可伸缩的和实时的服务基础设施。处理你的机器学习模型使用MLflow和暴露REST API端点。这个功能使用serverless计算,这意味着相关的端点和砖云计算资源管理和运行的帐户。

尽可能使用托管服务

砖Lakehouse平台的利用管理服务bob体育客户端下载Serverless计算,模型服务,或三角洲生活表在可能的情况下。这些服务由客户——没有额外的努力——由砖可靠和可伸缩的方式,使工作更可靠。

2。数据质量管理

使用分层存储架构

牧师数据通过创建一个分层架构,确保数据质量的增加,因为数据通过移动层。一个共同的分层方法是:

  • 原始层(青铜):源数据被吸收进入lakehouse进入第一层,应该坚持。当创建所有下游数据从原始层,重建的后续层这一层是可能的。

  • 策划层(银):第二层的目的是保持洁净,精制、过滤和聚合数据。这一层的目标是提供一个良好的、可靠的基础分析和报告所有的角色和功能。

  • 最后一层(金):第三层创建业务或项目需求。它提供了一个不同的观点作为数据产品到其他业务单位或项目,准备数据安全需求(如匿名数据)或优化性能(如preaggregated视图)。在这一层的数据产品业务被视为真理。

最后一层应该只包含高质量的数据,可以完全信任从商业的观点。

提高数据的完整性,减少数据冗余

复制或复制数据创建数据冗余和将导致失去诚信,失去了数据沿袭,往往不同的访问权限。这样可以减少lakehouse中的数据的质量。暂时的或一次性的副本数据不是有害的,提高敏捷性,有时是必要的实验和创新。然而,如果这些副本开始运作,经常用于商业决策,他们成为数据仓库。这些数据竖井的同步对数据完整性和质量有很大的负面影响,提高问题如“主数据集是哪家?”或“数据集更新吗?”。

积极管理模式

不受控制的模式变化会导致无效的数据和使用这些数据集的失败的工作。砖有几个方法来验证和实施模式:

  • 三角洲湖支持模式验证和执行通过自动处理模式的变化,防止不良记录的插入在摄入。

  • 自动加载程序检测过程数据添加新列。默认情况下,添加一个新列让你流停止了UnknownFieldException。自动加载程序支持多种模式模式演化

使用约束和数据的预期

三角洲表支持标准的SQL约束管理条款,确保质量和完整性的数据添加到表中会自动验证。当违反条件,δ抛出一个湖InvariantViolationException误差信号,新数据不能被添加。看到约束砖

进一步改进此处理,三角洲生活表支持的期望:期望定义数据质量约束在一个数据集的内容。一个期望由一个描述,一个不变的,一个动作记录失败时不变的。预期使用Python修饰符或SQL的查询约束条款。看到管理数据质量与达美住表

以数据为中心的机器学习方法

工程特点、培训、推理和监测管道数据管道。他们需要其他生产数据工程过程一样健壮。在任何毫升应用程序数据质量是至关重要的,所以毫升数据管道应该采用系统的方法来监测和缓解数据质量问题。避免工具,使它从毫升挑战加入数据预测,模型监测,等等,与其他数据。实现这一点的最简单的方法是开发毫升应用程序在相同的平台上用于管理生产数据。bob体育客户端下载例如,而不是训练数据下载到笔记本电脑,很难控制和繁殖的结果,安全云存储中的数据和存储可用于您的训练过程。

3所示。设计自动定量

启用批处理工作负载的自动定量

自动定量允许根据工作负载集群自动调整。自动定量可以受益许多用例和场景从成本和性能的角度看问题。文档提供了考虑决定是否使用自动定量和如何获得最大的效益。

对于流媒体工作负载,砖建议使用三角洲生活具有自动定量的表。看到使用自动定量来提高效率和减少资源的使用

启用自动定量SQL仓库

SQL仓库集的尺度参数的最小和最大数量的集群分布查询发送到仓库。默认是一个最小的和一个最大的集群。

处理更多的并发用户对于一个给定的仓库,提高集群数量。学习如何砖补充说从一个仓库和删除集群,集群排队和自动定量

使用三角洲住表增强的自动定量

砖增强自动定量集群资源通过自动分配优化集群利用基于工作负载体积,以最小的对管道的数据处理延迟的影响。

4所示。测试恢复过程

创建定期备份

从失败中恢复过来,需要定期备份可用。砖实验室项目迁移允许工作空间管理员创建备份通过出口的大部分资产的工作区(该工具在后台使用砖/ CLI API)。看到砖迁移工具。备份可以恢复工作区或用于进口在迁移到一个新的工作空间。

从结构化流查询故障中恢复

结构化流为流媒体查询提供了容错和数据一致性。使用砖工作流,您可以很容易地配置您的结构化流查询自动重新启动失败。重新启动查询继续失败的人。看到的地方从结构化流查询故障中恢复

基于三角洲ETL作业时间旅行中恢复过来

尽管彻底测试,在生产工作可能失败或产生一些意想不到的,甚至是无效的,数据。有时这可以固定一个额外的工作理解的来源问题和修复管道,导致问题放在第一位。然而,通常这不是简单的,各自的工作应该回滚。使用增量时间旅行允许用户轻松地回滚更改一个旧版本或时间戳、固定管道修复管道,并重新启动。看到三角洲湖时间旅行是什么?

这样做是一个方便的方法恢复命令。

使用砖工作流和内置的复苏

砖工作流构建的复苏。当一个任务在一个多任务工作失败(,因此,所有相关的任务),砖工作流的运行提供一个矩阵视图,它可以让你检查的问题导致了失败。看到查看运行工作。是否短数据网络问题或一个真正的问题,你可以修复它,开始修复在砖工作流的运行。它只有失败和运行相关的任务和保持成功的早些时候运行的结果,节省时间和金钱。

配置一个灾难恢复模式

明确灾难恢复模式等进行数据分析平台数据砖是至关重要的。bob体育客户端下载对一些公司来说,这是至关重要的,你的团队可以使用砖平台数据即使在罕见的情况下区域service-wide云服务提供者中断,是否引起的地区灾难像飓风或地震或另bob体育客户端下载一个来源。

砖通常是一个生态系统整体数据的核心部分,包括许多服务,包括上游数据摄入服务(批/流),原生云存储,下游的工具和服务,如商业智能应用程序,和编制工具。你的一些用例可能特别敏感地区service-wide停机。

灾难恢复是一套策略、工具和程序,使重要的技术基础设施和系统的恢复或延续自然或人为灾难。大型云服务,如Azure, AWS GCP提供许多客户和内置的防范或一个失败。例如,区域是一组建筑物连接到不同的电源保证单个功率损耗不会关闭。然而,云地区的失败可能发生,破坏的程度及其对组织的影响也各不相同。看到灾难恢复

灾难恢复策略的核心部分是选择一个策略(主动/主动或主动/被动),选择正确的工具集和测试故障转移恢复

5。自动化部署和工作负载

卓越运营的文章,看看卓越运营——自动化部署和工作负载

6。设置监控、报警和日志记录

卓越运营的最佳实践,明白了卓越运营——设置监控、报警和日志记录