Apache Beam Typescript SDK 快速入门
本快速入门将向您展示如何使用 Apache Beam Typescript SDK,并使用 Direct Runner 运行 示例管道。
如果您有兴趣为 Apache Beam Typescript 代码库做出贡献,请参阅 贡献指南。
在本页
设置你的开发环境
确保您已安装 Node.js 开发环境。如果您没有,您可以从 下载页面 下载并安装它。
由于它广泛使用跨语言转换,因此建议系统上也安装 Python 3 和 Java。
克隆 GitHub 仓库
克隆或下载 apache/beam-starter-typescript GitHub 仓库,然后进入 beam-starter-typescript
目录。
安装项目依赖项
运行以下命令以安装项目的依赖项。
编译管道
然后使用以下命令构建管道
运行快速入门
运行以下命令
输出类似于以下内容
这些行可能以不同的顺序出现。
探索代码
此快速入门的主要代码文件是 app.ts (GitHub)。代码执行以下步骤
- 定义一个 Beam 管道,它。
- 创建一个初始的
PCollection
。 - 将转换(map)应用于
PCollection
。
- 使用 Direct Runner 运行管道。
创建管道
Pipeline
只是一个可调用对象,它接受单个 root
对象。Pipeline
函数构建要执行的转换图。
创建初始 PCollection
PCollection
抽象表示一个可能分布式、多元素的数据集。Beam 管道需要一个数据源来填充初始 PCollection
。源可以是有界的(具有已知的固定大小)或无界的(具有无限大小)。
此示例使用 Create
方法从字符串的内存数组中创建 PCollection
。生成的 PCollection
包含字符串“Hello”、“World!”以及用户提供的输入字符串。
root.apply(beam.create(["Hello", "World!", input_text]))
将转换应用于 PCollection
转换可以更改、过滤、分组、分析或以其他方式处理 PCollection
中的元素。此示例使用 Map
转换,它将集合的元素映射到新的集合
.map(printAndReturn);
为了方便起见,PColletion
有一个 map
方法,但更一般地,转换是使用 .apply(someTransform())
应用的。
运行管道
要运行管道,需要创建一个运行器(可能带有一些选项)
createRunner(options)
然后在上面创建的管道可调用对象上调用它的 run
方法。
.run(createPipeline(...));
Beam 运行器 在特定平台上运行 Beam 管道。如果您没有指定运行器,Direct Runner 是默认运行器。Direct Runner 在您的机器上本地运行管道。它旨在用于测试和开发,而不是针对效率进行优化。有关更多信息,请参阅 使用 Direct Runner。
对于生产工作负载,您通常使用分布式运行器,它在大型数据处理系统(如 Apache Flink、Apache Spark 或 Google Cloud Dataflow)上运行管道。这些系统支持大规模并行处理。不同的运行器可以通过选项中的运行器属性请求,例如 createRunner({runner: "dataflow"})
或 createRunner({runner: "flink"})
。在此示例中,此值可以通过命令行作为 --runner=...
传递,例如,要在 Dataflow 上运行,您需要编写
node dist/src/main.js \
--runner=dataflow \
--project=${PROJECT_ID} \
--tempLocation=gs://${GCS_BUCKET}/wordcount-js/temp --region=${REGION}
下一步
- 了解有关 Beam SDK for Typescript 的更多信息,并浏览 Typescript SDK API 参考。
- 通过我们的 学习资源 进行自定进度的巡回。
- 深入了解我们最喜欢的 视频和播客。
- 加入 Beam users@ 邮件列表。
如果您遇到任何问题,请随时 联系我们!
上次更新时间:2024/10/31
您是否找到了您要找的所有内容?
所有内容是否都实用且清晰?您是否希望更改任何内容?请告诉我们!