Apache Beam プロジェクト

このページでは、Google Season of Docs に承認された技術文書作成プロジェクトの詳細について説明します。

プロジェクトの概要

オープンソースの組織:
Apache Beam
テクニカル ライター:
Sruthi Sree Kumar
プロジェクト名:
ランナーの比較ページ / 機能マトリックスの更新
プロジェクトの長さ:
標準期間(3 か月)

プロジェクトの説明

Apache Beam は、バッチとストリームの両方の処理パイプラインを定義するための統合プラットフォームです。Apache Beam を使用すると、特定のデータ処理プラットフォームに関係なく、データセットを表して変換するモデルを定義できます。定義した関数は、Apache Apex、Apache Flink、Apache Spark、Google Cloud Dataflow など、サポートされているランタイム フレームワーク(ランナー)で実行できます。Apache Beam には、Java、Python、GO などのプログラミング言語でパイプラインを記述できるさまざまな SDK も用意されています。

「ランナー比較ページ/機能マトリックスの更新」で GSOD の申請を提出します。Apache Beam は複数のランナーと SDK をサポートしているため、新規ユーザーはこれらのランナーの選択を混乱してしまいます。各種ランナーに関する現在のドキュメントでは、ランナーの概要をごく簡単に説明しています。私のアイデアは、特定のランナーのドキュメント ページに、各ランナーのよりわかりやすい詳細を追加することです。また、単語数カウントのプロジェクトの例の説明を更新し、詳細な説明を追加したいと思います。そのため、すべての単語数カウントの例をローカルマシンで試し、不足している手順がないかを確認し、プロセスについて説明を追加する予定です。また、ランナーのドキュメントにはパターンがありません(概要セクションが記載されているものもあれば、使用方法や前提条件、またはランダムなタイトルから始まるものもあります)。すべてを更新して、単一のシンプルなパターンに沿うようにします。

各ランナーを説明する新しいページを追加し、各ランナーに説明的なナレーションを提供する予定です [BEAM-3220]。このページから、各ランナーの詳細な説明ページと機能マトリックスにリダイレクトできます。また、各ランナーの説明的な比較をここに追加する予定です。現在、修士論文で Flink ランナーのベンチマークに Beam NEXMark を使用しています。NEXMark ベンチマークについてはよく理解しているため、バッチモードとストリーミング モードの両方で、各ランナーのベンチマーク結果をここに含めたいと思います(BEAM-2944)。パラメータや構成が不足している、または削除されていることが判明した場合は、NEXMark のドキュメントも更新します。以前、Flink ランナーを使用していたときに、ドキュメントにパラメータの 1 つが記載されていなかったため、最初は行き詰まりました。しかし、NEXMark のコードベースに慣れてきたので、ランナーのベンチマークを実施して指標を追加しやすくなりました。このページには、各ランナーの製品版への対応状況の概要も記載します。

現在のドキュメントでは、各ランナーの説明ページにクラシック/ポータブル ランナーのサポートが含まれています。また、機能マトリックスまたは新しく追加された説明ページのいずれか、1 か所にまとめて表示することもおすすめします。また、現在、ポータビリティのサポートは別の Google スプレッドシートで管理されていますが、これを互換性マトリクスに統合したいと考えています(https://docs.google.com/spreadsheets/d/1KDa_FGn1ShjomGd-UUDOhuh2q73de2tPz6BqHpzqvNI/edit#gid=0)。このタスクの一環として、BEAM-2888 に記載されているすべての大規模/小規模な修正を含める予定です。

私は GSoD をオープンソースへの貢献を始める機会と考えています。引き続きオープンソース プロジェクト(特に Beam)に貢献し、コミュニティ メンバーとして積極的に活動していきたいと考えています。Apache Beam には活発なコミュニティがあり、継続的に機能が開発されているため、ドキュメントを更新するための改善の余地は常にあると思います。また、開発作業にも貢献したいと思っています。Beam に関する十分な知識があれば、ユーザー コミュニティをサポートすることもできます。私自身、Beam を使い始めたときはコミュニティから常にサポートを受けていました。

以下の理由から、私がこのプロジェクトを担当していると思います。

  1. 私は分散システムの愛好家で、データ処理システムの内部を理解しようとしています。
  2. Apache Beam と Apache Flink のユーザーとして使用した経験があります。
  3. デベロッパーとして、Apache Beam と Apache Flink のコードベースをすでに理解している。
  4. さまざまなビームランナーを比較するプロジェクトを作成しました。
  5. ビッグデータ処理と分散システムのコンセプトを説明する技術的なブログを書いた経験があります。
  6. 現在、私は Apache Flink の状態バックエンドのパフォーマンスを向上させるためのマスター論文の作成に取り組んでおり、ベンチマークに Apache Beam NEXMark 実装を使用しています。また、Apache Beam のドキュメントの更新にも貢献しています。
  7. 私はソフトウェア デベロッパーとしての 4 年間の実務経験があるため、複数の技術設計ドキュメント、製品ドキュメント、および Readme ファイル(今はアクセスできません)を作成してきました。
  8. 知識のない人でも一目で理解できるような形でドキュメントを作成している。