研究与技术01
Netflix 为跑在 Amazon EMR 上的 Apache Spark 任务做了一套“工作负载证明”机制。打个比方:过去托管计算任务要访问内部服务,得把内部凭证直接塞给任务,凭证容易泄露、也难管理。现在的做法是先确认这个任务的 AWS IAM 身份,再核对 Netflix 控制面签发的声明,两者都通过后,才发一张有效时间很短的内部 X.509 证书,任务用它去访问内部服务。这样托管计算任务不必直接携带凭证,就能安全地完成内部认证,凭证暴露的风险和分发负担都小了。这套机制目前应用在 Netflix 的 Spark/EMR 场景,其他场景是否适用文中未说明。
文中可用工具
- Apache Spark在 Amazon EMR 上运行的分布式数据处理任务
- Amazon EMR托管运行 Spark 任务的 AWS 计算服务
- AWS IAM用于识别工作负载身份的云身份服务
- X.509 证书短期内部证书,用于访问内部服务
数据处理02
zapanss/End-to-End-ELT-Data-Pipeline-with-Databricks-Delta-Lake-DLT-dbt-Ready-Gold-Models · 🚀 Build a production-ready ELT data pipeline on Databricks, leveraging Delta Lake and DLT for efficient data ingestion, transformation, and modeling.
该项目提供了一个基于 Databricks 的生产级 ELT 数据管道实现,涵盖 Auto Loader 数据接入、Delta Live Tables (DLT) 转换、基于 CDC 的 Silver 层建模以及动态 Gold 层维度与事实表构建。支持的 dbt 集成用于数据转换和灵活建模,涉及 Bronze-Silver-Gold、SCD 等数据工程常见模式。仓库以 Jupyter Notebook 为主要载体,附带系统要求说明与相关资料链接。
工具与应用03
Databricks 官方发了一篇指南,讲怎么收集 Databricks 和它底层 Spark 的运行数据(比如性能、成本、用量)。之前这些数据分散在各处,用户不容易统一查看和排查问题。这次介绍的方法主要是用系统表来查询日志、成本和性能指标,再配合 Spark UI、作业通知和 REST API,就能做分析和告警。不过要注意,系统表的数据不是实时的,延迟随 schema 不同,所以不能拿它做秒级告警;实时监控得靠作业通知和 API。
文中可用工具
- system tables存放 Databricks 性能、成本和用量等监控数据,可查询分析
- Unity Catalog控制谁可以访问系统表里的数据
- Databricks SQL API让外部工具从系统表拉数据做报表和分析
- Spark UI查看 Spark 作业的执行细节,帮助排查性能问题
- job notifications作业成功、失败、开始或超时时发实时通知,可发到邮件、Slack 等
- Jobs API查询作业运行情况,用于实时监控
- Databricks REST API获取查询历史等数据
- Pipelines API用 SQL 查询管道事件日志
- Spark Streaming Query Listener把流处理指标发送到外部服务