学習リソース
学習リソースへようこそ。このページには、Apache Beamを使い始めるのに役立つリソースのコレクションが含まれています。初めての方は、ガイド付きツアーとしてご利用いただけます。そうでない場合は、関心のあるセクションに直接ジャンプできます。
ここに掲載してほしい追加資料がある場合は、user@beam.apache.orgまでお知らせください。
はじめに
クイックスタート
- Javaクイックスタート - Java SDKでWordCountパイプラインを設定して実行する方法。
- Pythonクイックスタート - Python SDKでWordCountパイプラインを設定して実行する方法。
- Goクイックスタート - Go SDKでWordCountパイプラインを設定して実行する方法。
- Java開発環境 - IntelliJとMavenを使用して、Apache BeamのJava開発環境をセットアップします。
- Python開発環境 - PyCharmを使用して、Apache BeamのPython開発環境をセットアップします。
基本の学習
- WordCount - シンプルなWordCountパイプラインのコードを順を追って説明します。これは、データ処理の最も基本的な概念を示すための非常に基本的なパイプラインです。WordCountは、データ処理の「Hello World」です。
- モバイルゲーム - データ処理中の時間の考慮方法、ユーザー定義変換、ウィンドウイング、データのフィルタリング、ストリーミングパイプライン、トリガー、セッション分析について紹介します。WordCountに慣れたら、ここから始めるのが最適です。
基礎
- プログラミングガイド - プログラミングガイドには、Apache Beam SDKのほとんどのトピックに関する詳細情報が含まれています。これらには、すべてのしくみの説明と、すべての部分の使用方法を示すコードスニペットが含まれています。これは、リファレンスガイドブックとして使用できます。
- バッチを超えた世界:ストリーミング101 - 基本的な背景情報、用語、時間領域、バッチ処理、ストリーミングについて説明します。
- バッチを超えた世界:ストリーミング102 - Beamの統合バッチおよびストリーミングプログラミングモデルのツアーと、多くの概念を説明するための例。
- Apache Beam実行モデル - ランナーがApache Beamパイプラインを実行する方法の説明。これには、シリアル化が重要な理由と、ランナーが複数のマシンに作業を並列に分散する方法が含まれます。
共通パターン
- 一般的なユースケースパターンパート1 - 複数のストレージロケーションへのデータの書き込み、ゆっくりと変化するルックアップキャッシュ、外部サービスの呼び出し、不良データの処理、RESTエンドポイントを介したジョブの開始など、一般的なパターン。
- 一般的なユースケースパターンパート2 - 複数のデータプロパティを使用したGroupBy、共通キーでの2つのPCollectionの結合、大規模ルックアップテーブルのストリーミング、ウィンドウ長が異なる2つのストリームのマージ、時系列データを使用したしきい値検出など、一般的なパターン。
- 再試行ポリシー - `DoFn`に再試行ポリシーを追加します。
記事
データ分析
- ニュースのソーシャルエンゲージメントの予測 - 複数のデータソース、多くの一般的な設計パターン、および感情分析を使用して、TensorFlowとDataflowのさまざまなニュース記事に関する洞察を得ます。
- IoTデータの処理 - IoTセンサーはクラウドに継続的にデータをストリーミングしています。リアルタイム監視、アラート、分析のための長期データストレージ、パフォーマンスの向上、モデルのトレーニングに役立つセンサーデータを処理する方法を学びます。
データ移行
- Oracle DatabaseからGoogle BigQueryへ - Dataprepを使用して、Oracle DatabaseからBigQueryにデータを移行します。
- Google BigQueryからGoogle Datastoreへ - スキーマを考慮せずに、BigQueryテーブルからDatastoreにデータを移行します。
- SAP HANAからGoogle BigQueryへ - SAP HANAインメモリデータベースからBigQueryにデータを移行します。
機械学習
- RunInference APIを使用した機械学習 - RunInference APIでApache Beamを使用して、機械学習(ML)モデルを使用して、バッチおよびストリーミングパイプラインでローカルおよびリモート推論を実行します。RunInference APIパイプラインの例に従って、画像分類、画像セグメンテーション、言語モデリング、およびMNIST数字分類を実行します。RunInference変換の例を参照してください。
- 機械学習の前処理と予測 - 空間データファイル(SDF)形式で保存されているデータから分子エネルギーを予測します。Pythonで前処理を行うために、TensorFlowモデルをtf.Transformでトレーニングします。これは、Apache Beamでバッチおよびストリーミング予測パイプラインを作成する方法も示しています。
- 機械学習の前処理 - ボトルフィラーやクッキーマシンなどのシミュレートされた物理マシンの最適なパラメータ設定を見つけます。各シミュレートされたマシンの目標は、実際のマシと同じ入力/出力を持つことで、「デジタルツイン」にすることです。これは、前処理にtf.Transformを使用します。
高度な概念
- AppEngineでの実行 - Dataflowテンプレートを使用してGoogle AppEngineからパイプラインを起動する方法、およびcronジョブを介してパイプラインを定期的に実行する方法。
- ステートフル処理 - 入力要素を処理しながら永続的な可変状態にアクセスする方法を学びます。これにより、`DoFn`で*副作用*が発生します。順序が問題にならない場合に、各着信要素に一意のインクリメントインデックスを割り当てたい場合、これは任意ですが一貫性のあるインデックス割り当てに使用できます。
- タイムリーでステートフルな処理 - バッチRPC呼び出しを実行する方法の例。呼び出し要求は、受信されると可変状態に保存されます。十分な数の要求があるか、一定の時間が経過すると、要求のバッチの送信がトリガーされます。
- 外部ライブラリの動作 - Apache BeamにネイティブSDKがない言語(C ++など)で記述された外部ライブラリを呼び出します。
動画
- Apache Beam入門 - 基本から応用までの概念を理解するための5部構成のビデオシリーズ。
- その他の動画とポッドキャストを参照してください
コース
- Beam College – Beamとデータ処理を学ぶための無料のライブおよび録画レッスン。
- サーバーレスデータ処理 - Dataflowランナーに特化したコース。
書籍
Apache Beamを使用したビッグデータパイプラインの構築
Apache Beamを使用したビッグデータパイプラインの構築 JanLukavský著、Packt。(2022年1月)。主題の確かな理解を深めるための徐々に構築された例を含む、Apache Beamモデルの一般的な説明。最初の部分では、本書ではJava SDK、次にSQL DSLと移植性レイヤーを使用して概念を説明し、Python SDKに焦点を当てています。本書の最後の部分は、Splittable DoFnを使用したIOコネクタや、一般的なランナーがパイプラインを実行する方法の説明など、より高度なトピックに特化しています。
ストリーミングシステム:大規模データ処理の定義、場所、タイミング、方法
ストリーミングシステム:大規模データ処理のWhat、Where、When、そしてHow Tyler Akidau、Slava Chernyak、Reuven Lax著。(2018年8月)。Tyler Akidauの人気ブログ記事「Streaming 101」と「Streaming 102」を拡張した本書は、リアルタイムデータストリームの処理について、入門レベルから深い理解へと導きます。
資格
Apache Beam Quest入門
Apache Beam入門 このクエストには、Apache Beamパイプラインの作成とテスト方法を学ぶための4つのラボが含まれています。3つのラボはJavaを使用し、1つはPythonを使用します。各ラボの完了には約1.5時間かかります。クエストを完了すると、Beamの専門知識を示すために使用できるバッジが付与されます。
インタラクティブラボ
Java
- ビッグデータテキスト処理パイプライン (40分) - Dataflowランナーでワードカウントパイプラインを実行します。
- リアルタイム機械学習 (45分) - 米国国内線の過去のデータを使用して、リアルタイムのフライト遅延予測サービスを作成します。
- リアルタイム地理空間データの視覚化 (60分) - 実際の過去のデータセットからリアルタイムストリーミングデータを処理し、結果をBigQueryに保存し、Data Studioで地理空間データを視覚化します。
- 時間ウィンドウデータの処理 (90分) - 機械学習モデルの一貫したトレーニングおよびテストデータセットを作成するために、生データを拡張するための時間ウィンドウ集計を実装します。
Python
- Pythonクイックスタート (30分) - Dataflowランナーでワードカウントパイプラインを実行します。
- 過去のフライトのシミュレーション (60分) - 米国国内線の過去のフライトをリアルタイムでシミュレートし、結果のシミュレートされたデータをBigQueryに保存します。
Beam Katas
Beam Katasは、Apache Beamの概念とプログラミングモデルを実際に学ぶのに役立つ、インタラクティブなBeamコーディング演習(コードカタ)です。JetBrains Educational Productsに基づいて構築されたBeam Katasの目的は、学習者が徐々に複雑になる演習を解くことにより、Apache BeamとそのSDKについて理解するための、一連の体系的な実践学習体験を提供することです。Beam Katasは、JavaとPythonの両方のSDKで利用できます。
Java
- IntelliJ Eduをダウンロード
- IDEを開いたら、「学習と指導」メニューを展開し、「コースの参照」を選択します。
- 「Beam Katas - Java」を検索します。
- 「詳細設定」を展開し、「場所」と「Jdk」を適切に変更します。
- 「参加」をクリックします。
- Education製品の使用方法について詳しくはこちら
Python
- PyCharm Eduをダウンロード
- IDEを開いたら、「学習と指導」メニューを展開し、「コースの参照」を選択します。
- 「Beam Katas - Python」を検索します。
- 「詳細設定」を展開し、「場所」と「インタープリター」を適切に変更します。
- 「参加」をクリックします。
- Education製品の使用方法について詳しくはこちら
コード例
Dataflowクックブック
クックブックには、Java、Python、Scala(Scio経由)の例が含まれており、すぐに起動できる自己完結型のBeamパイプラインを提供します。
Java
- スニペット1 - BigQueryの使用方法、CombinePerKey変換、ファイル内の重複行の削除、フィルタリング、PCollectionの結合、PCollectionの最大値の取得など、よく使用されるデータ分析パターン。
- スニペット2 - BigQuery、PubSubの設定、ウィンドウごとに1つのファイルの書き込みなど、一般的なタスクに関する追加の例。
- 完全な例 - オートコンプリート、ストリーミングワード抽出、単語出現頻度-逆文書頻度(TF-IDF)の計算、上位Wikipediaセッションの取得、トラフィック最大レーンフロー、トラフィックルートなどのエンドツーエンドのパイプライン例。
- Pub/SubからBigQuery - DataflowでApache Beamを使用して、JSONエンコードされたPub/Subサブスクリプションメッセージ文字列を構造化データに変換し、そのデータをBigQueryテーブルに書き込む方法を示す完全な例。
Python
- スニペット - BigQuery、Datastoreの使用方法、コーダー、コンバイナー、フィルター、カスタムPTransformなど、よく使用されるデータ分析パターン。
- 完全な例 - オートコンプリート、モバイルゲーム統計の取得、ジュリア集合の計算、分散最適化タスクの解決、PIの推定、単語出現頻度-逆文書頻度(TF-IDF)の計算、上位Wikipediaセッションの取得など、エンドツーエンドのパイプライン例。
Beam Playground
- Beam Playgroundは、環境にApache Beamをインストールすることなく、Beam変換と例を試すことができるインタラクティブな環境です。Beam Playgroundで利用可能なApache Beamの例を試すことができます。
- Beam PlaygroundカタログにApache Beamの例/テスト/カタを追加する方法についてはこちらをご覧ください。
APIリファレンス
- Java APIリファレンス - Java SDKの公式APIリファレンス。
- Python APIリファレンス - Python SDKの公式APIリファレンス。
- Go APIリファレンス - Go SDKの公式APIリファレンス。
フィードバックと提案
私たちはフィードバックと提案を歓迎します。お問い合わせページで、コミュニティに連絡するためのさまざまな方法を見つけることができます。
バグレポートがある場合、または新機能を提案したい場合は、新しい issue を提出することでお知らせください。
貢献する方法
私たちはすべての人からの貢献を歓迎します!貢献方法の詳細については、貢献ガイドをご覧ください。
最終更新日:2024/10/31
お探しのものはすべて見つかりましたか?
すべて役に立ち、明確でしたか?変更したいことはありますか?お知らせください!