
不写一行代码如何构建ETL数据管道Metorikku轻量级ETL框架完全入门指南【免费下载链接】metorikkuA simplified, lightweight ETL Framework based on Apache Spark项目地址: https://gitcode.com/gh_mirrors/me/metorikkuMetorikku 是一个基于 Apache Spark 的轻量级 ETL 框架它让你只用 YAML 配置文件和标准 SQL 语句就能不写一行代码完成数据抽取、转换与加载。无需搭建复杂工具链无需编写 Java 或 Scala任何会写 SQL 的数据人都能快速构建可运行、可测试的 ETL 数据管道。为什么需要 Metorikku 这个 ETL 框架传统上构建 ETL 数据管道意味着三件事学一门编程语言、理解 Spark API、维护大量模板代码。对于大多数团队来说这太重了。Metorikku 的思路很直接把 ETL 逻辑从代码中解放出来交给配置文件和 SQL。它带来三个核心优势⚡零代码门槛整个数据管道由两个 YAML 文件定义转换逻辑全部用 SQL 表达轻量易部署官方提供内置 Spark 的独立 JAR 包一条命令即可本地运行也可提交到任意 Spark 集群✅自带测试能力内置 Metorikku Tester用模拟数据 期望结果的方式为管道写单元测试让 ETL 部署可自动化项目定位为A simplified, lightweight ETL Framework based on Apache Spark —— 简化、轻量专注把 ETL 这件事做简单。快速上手两个文件构建你的第一条 ETL 管道Metorikku 的运行只需要定义两个文件这也是它不写代码理念的核心文件类型作用示例文件Job 文件定义输入数据源、输出目的地、关联哪些 Metricexamples/movies.yamlMetric 文件定义 ETL 的转换步骤SQL和最终输出格式examples/movies_metric.yaml想完整查看所有支持的配置项可以直接阅读项目提供的样例配置完整 Job 配置样例config/job_config_sample.yaml完整 Metric 配置样例config/metric_config_sample.yaml第一步用 Job 文件声明数据从哪来、到哪去Job 文件负责三件事指定要执行的 Metric 文件、注册输入数据源、配置输出目录。以官方的电影评分示例为例examples/movies.yaml把 CSV 文件注册成逻辑表SQL 里就能直接像查数据库一样使用它们——这就是不写代码的关键体验。它还支持日期范围批量读取按yyyy/MM/dd目录结构滚动加载每日数据、自定义变量在 SQL 中引用、日志级别、输出预览行数等实用选项全部是声明式配置。第二步用 Metric 文件把 ETL 步骤写成 SQLMetric 文件是管道的大脑由steps步骤和output输出两部分组成。每个步骤就是一段 SQL 查询产出下一个步骤可以引用的中间表。官方示例examples/movies_metric.yaml展示了完整流程关联电影表与评分表筛选奇幻类电影计算平均评分并排出 Top 100用变量过滤出指定电影最后同一个结果集可以一次输出为 Parquet、CSV、JSON 甚至 XML 多种格式——这在传统代码方案里通常需要写好几遍写出逻辑。除了内联 SQLMetorikku 还支持把 SQL 放在独立文件里如examples/topFantasyMovies.sql让数据工程师和平台工程师各守边界、互不干扰。三种运行方式从本地一键启动到生产集群方式一本地独立运行推荐新手Metorikku 发布的 standalone JAR 已经内置了 Spark环境要求仅 Java 1.8。官方示例的运行命令如下java -Dspark.masterlocal[*] -cp metorikku-standalone.jar com.yotpo.metorikku.Metorikku -c examples/movies.yaml一行命令本地跑通完整管道适合开发和调试阶段。方式二提交到 Spark 集群生产部署生产环境用spark-submit提交即可要求 Spark 2.2spark-submit --class com.yotpo.metorikku.Metorikku metorikku.jar -c config.yaml它支持远程配置路径如s3://bucket/job.yaml任何 Hadoop 生态支持的存储S3、HDFS 等都可以直接使用。方式三Docker 容器化部署项目自带 Docker 镜像和多套 docker-compose 编排文件见docker/目录可以快速搭建 Spark Standalone、Hive、Kafka、Elasticsearch、InfluxDB 等完整实验环境甚至内置了端到端测试套件e2e/目录非常适合 CI/CD 场景。开箱即用的能力清单10 种输入输出 数据质量 流处理Metorikku 的覆盖面远超文件转文件以下是新手最关心的能力一览数据源与目的地输入CSV、JSON、Parquet、JDBCMySQL 等关系库、Kafka、Cassandra、Elasticsearch、MongoDB、Hive输出CSV、JSON、Parquet、Redshift、Cassandra、Segment、JDBC、Kafka、Elasticsearch、Hudi内置数据质量检查Data Quality管道最怕静默产出脏数据。Metorikku 允许在任意 SQL 步骤上挂载dq校验块基于 AWSLabs Deequ 实现支持以下校验操作符isComplete列完整性非空率isUnique/hasUniqueness唯一性约束hasSize行数断言支持 、、 等操作符isContainedIn取值范围校验校验级别可设为WARN仅告警或ERROR直接终止任务还能把失败的数据集落盘为 Parquet 便于排查。详细说明见examples/dq/README.md配套示例在examples/dq/目录。结构化流式处理把 Kafka 输入或文件流isStream: true配置进 Job 文件整个管道即自动升级为基于 Spark Structured Streaming 的流式应用支持 Watermark 处理迟到数据、微批触发器、多种输出模式等。流式示例可参考examples/kafka/kafka2kafka.yaml和examples/file_input_stream/job.yaml。自定义扩展可选当 SQL 不够用时Metorikku 提供两种无侵入扩展方式内置的常用代码步骤去重RemoveDuplicates、表结构对齐AlignTables、敏感列脱敏ObfuscateColumns等源码位于src/main/scala/com/yotpo/metorikku/code/steps/以及完全自定义的 UDF JAR 步骤——即便如此管道主体依然是 YAML。Metorikku Tester像写文档一样测试 ETL 管道这是 Metorikku 最被低估的特性。测试文件同样是一份 YAML包含四要素metric要测试的 Metric 文件路径mocks模拟输入数据JSONL 文件params测试时注入的变量tests期望的结果集运行示例对应examples/movies_test.yamljava -Dspark.masterlocal[*] -cp metorikku-standalone.jar com.yotpo.metorikku.MetorikkuTester -t examples/movies_test.yaml结果与期望一致则通过不一致则输出详细差异报告。这意味着 ETL 管道第一次拥有了可自动化的单元测试可以直接集成进 CI 流程让数据管道的部署像应用代码一样可靠。新手学习路径建议第一天克隆仓库https://gitcode.com/gh_mirrors/me/metorikku用 standalone JAR 跑通examples/movies.yaml示例第二天把电影示例改成自己的业务 CSV修改 SQL 步骤理解 Job 与 Metric 的分工第三天接入真实数据源JDBC 或 Kafka并给关键步骤加上dq数据质量校验进阶为管道编写 Tester 用例配置 Docker 环境做端到端验证总结SQL 会写管道就能跑Metorikku 证明了 ETL 不必是重资产用 Job Metric 两个 YAML 文件定义管道、用 SQL 表达转换、用 Tester 保障质量、用 Docker 交付部署。无论你是想替代手工 SQL 脚本的数据分析师还是希望降低团队维护成本的数据工程师这套轻量级 ETL 框架都值得放进你的技术工具箱。【免费下载链接】metorikkuA simplified, lightweight ETL Framework based on Apache Spark项目地址: https://gitcode.com/gh_mirrors/me/metorikku创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考