SlideShare a Scribd company logo
© 2023 NTT DATA Corporation
OpenLineage による Airflow のデータ来歴の収集と可視化
@Airflow Meetup Tokyo #3
2023/03/16
株式会社NTTデータ
関 堅吾
© 2023 NTT DATA Corporation 2
1. Data Lineage とは何か
2. OpenLineage とは何か
3. Airflow で OpenLineage を使う方法
© 2023 NTT DATA Corporation
自己紹介
• 株式会社NTTデータ 技術開発本部所属のデータエンジニア/OSS開発者
• Apache Hadoop・Apache Spark といった、並列分散処理 OSS を用いたデータ基盤の構築・運用支援やサポート,
R&D を行っています
• データエンジニアリング関係のいくつかの OSS 開発にも参加しており、いくつかのプロジェクトでコミッタを務めています
• ワークフローエンジン:
• Hadoop 関連 OSS のパッケージング・構築・運用管理:
• データフォーマット・RPC:
• GIS ライブラリ:
• OSSプロジェクトの品質・テスト改善ツール群:
© 2023 NTT DATA Corporation 4
01
Data Lineage とは何か
© 2023 NTT DATA Corporation 5
Data Lineage とは
• "Data lineage includes the data origin, what happens to it, and where it moves over time"
(Wikipedia より引用: https://en.wikipedia.org/wiki/Data_lineage)
• データの系譜・来歴(データをどこから受け取り、どのような加工を経て、どこへ送られるのか)を追跡すること
※図は https://marquezproject.ai/ から引用
© 2023 NTT DATA Corporation 6
Data Lineage の用途:業務理解・影響分析
?
新しい処理を追加したいが、
必要なデータをどこから持って
くればよい?
このデータセットの形式を変更
したら、どの処理やデータセット
に影響がある?
このデータセットの値は、
何に基づいて・どういった
方法で計算されている?
:入出力データセット
:移動・コピー・加工などの処理
© 2023 NTT DATA Corporation 7
Data Lineage の用途:トラブルシュート
処理結果のデータがおかしい!
問題の原因はどこだ?
:入出力データセット
:移動・コピー・加工などの処理
© 2023 NTT DATA Corporation 8
02
OpenLineage とは何か
© 2023 NTT DATA Corporation 9
Data Lineage をサポートするメタデータ管理ツール
• Data Lineage を含むメタデータを管理するツール (※) は近年活発に開発されており, OSS だけでも多数の製品が存在
• 現状のままだと、ETLツール (※) x メタデータ管理ツールの組合せ数分、連携機能を実装する必要がある
(図は https://openlineage.io/docs/ より引用)
※本資料では、データの構造や各項目の意味、所有者や開示範囲、リネージ情報などを含む「データに関するデータ」を格納・提供するツールを「メタデータ管理ツール」、
データの移動やコピー、加工などを行いリネージデータの発生源となるツールを「ETLツール」と総称する
© 2023 NTT DATA Corporation 10
OpenLineage とは
• リネージ情報を収集するための REST API を, OpenAPI 仕様を用いてオープン標準化するためのプロジェクト
• ETLツール側では, OpenLineage にさえ対応すれば、メタデータ管理ツールごとに異なる収集方法に対応しなくて済む
• OpenLineage からメタデータ管理ツールへの連携は、リネージデータの取り込み方法に応じた backend を設置することで実現
(図は https://openlineage.io/docs/ より引用)
© 2023 NTT DATA Corporation 11
OpenLineage の歴史
• Twitter 社で Apache Parquet を開発した Julien Le Dem が2020/12 にプロジェクトを立ち上げ
• 彼が設立した DataKin 社が開発の中心だったが、後に Airflow の SaaS 提供会社である Astronomer に買収され、
引き続き同社が開発の中心を担っている
• WeWork が開発した Marquez が, OpenLineage でリネージデータを収集するメタデータ管理ツールのリファレンス実装と
なっている
• Marquez, OpenLineage ともに, Linux Foundation のサブ組織である LF AI & Data Foundation 傘下で開発中
• OpenLineage は, 2021/07 に sandbox project として参加し, 2023/01 に incubation stage に昇格
© 2023 NTT DATA Corporation 12
OpenLineage の現在
• 2023/03 時点の最新バージョンは 0.21.1
• ここ最近は毎月1~3回のペースでリリースしており、活発に開発を継続中
• ETLツールとしては Airflow, Spark, dbt などをサポート
• Apache Flinkもサポートしているが、まだexperimental扱い
• 月次の TSC (Technical Steering Committee) meeting の議事録・録画が公開されている
• 開発を主導している Astronomer 以外にも, ETL/データマネジメント系の SaaS ベンダ (Atlan, Collibra,
Fivetran, MANTA 等) に加えて、クラウド・エンタープライズ系の大手ベンダ (Microsoft, AWS, HPE等) も参加
• Microsoft や AWS は、以下のようなドキュメント・記事も公開している
• Azure Databricks のリネージ情報を OpenLineage を用いて Microsoft Purview に収集
https://learn.microsoft.com/en-us/samples/microsoft/purview-adb-lineage-solution-accelerator/azure-
databricks-to-purview-lineage-connector/
• MWAA (AWSのAirflowマネージドサービス) のリネージ情報を OpenLineage を用いて Marquez に収集する例
https://aws.amazon.com/blogs/big-data/automate-data-lineage-on-amazon-mwaa-with-openlineage/
(図は https://openlineage.io/docs/ より引用)
© 2023 NTT DATA Corporation 13
03
Airflow で OpenLineage を使う方法
© 2023 NTT DATA Corporation 14
Airflow への OpenLineage の導入・実行例
• Airflow 2.3 以上を使用している場合, openlineage-airflow パッケージをインストールするだけで利用可能
• setuptools の entrypoint 機能を使った plugin 登録方式を利用し, Airflow の plugin として追加される
• バージョン2.3から Airflow に導入された Listener API を利用している
• このListener APIを追加したのもOpenLineageの開発者 (https://github.com/apache/airflow/pull/20443)
• OpenLineage に対応したメタデータ管理ツールを立ち上げた上で、そのリネージデータ送信先URLを環境変数
OPENLINEAGE_URL に指定するか、設定ファイルに記述して Airflow を起動する
• なお、本パッケージを Airflow の provider に移管する提案 (AIP-53) も Airflow コミュニティに提出されており、将来的に
は導入方法が変更されると思われる
$ pip install openlineage-airflow
$ airflow plugins
name | macros | listeners | source
==================+=============================================================+==============================+===========================================================
OpenLineagePlugin | openlineage.airflow.macros.lineage_run_id,openlineage.airfl | openlineage.airflow.listener | openlineage-airflow==0.21.1:
| ow.macros.lineage_parent_id | | EntryPoint(name='OpenLineagePlugin',
| | | value='openlineage.airflow.plugin:OpenLineagePlugin',
| | | group='airflow.plugins')
$ OPENLINEAGE_URL=http://localhost:3000 airflow standalone
© 2023 NTT DATA Corporation 15
Airflow への OpenLineage の導入・実行例
実際に Marquez をメタデータ管理ツールとして、リネージ情報を送信するまでの例を以下に示す。(Ubuntu 22.04 上で確認)
1. (簡便のため Docker コンテナとして) Marquez を起動する。
コンテナが起動したらブラウザで3000番ポートに接続する。この時点では Marquez には何のリネージ情報も登録されていない。
$ sudo apt-get install -y docker.io docker-compose
$ sudo usermod $USER -aG docker
(logout & relogin)
$ git clone --depth=1 --branch=0.31.0 https://github.com/MarquezProject/marquez
$ cd marquez
$ docker/up.sh
© 2023 NTT DATA Corporation 16
Airflow への OpenLineage の導入・実行例
2. 別のターミナルから Airflow と OpenLineage をインストールし, OpenLineage 関連の設定とともに Airflow を起動する。
後でサンプルの DB に MySQL を使用するため、対応するパッケージもインストールしておく。
3. 別のターミナルから MySQL をインストールし、サンプルデータを登録するとともに、動作確認用のアカウントを追加する。
$ sudo apt-get install -y python3-pip python3-venv libmysqlclient-dev
$ python3 -m venv OL
$ . OL/bin/activate
$ pip install -U pip setuptools wheel
$ AIRFLOW_VERSION=2.5.1
$ PYTHON_VERSION=$(python -V | awk '{ print $2 }' | awk -F. '{ print $1 "." $2 }')
$ pip install "apache-airflow[mysql]==${AIRFLOW_VERSION}" --constraint
"https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-
no-providers-${PYTHON_VERSION}.txt"
$ pip install openlineage-airflow==0.21.1
$ OPENLINEAGE_URL=http://localhost:3000 OPENLINEAGE_NAMESPACE=my_namespace airflow standalone
$ sudo apt-get install -y mysql-server
$ sudo -i
# curl -sL https://downloads.mysql.com/docs/world-db.tar.gz | tar xz
# mysql < world-db/world.sql
# mysql -e "CREATE USER airflow@localhost IDENTIFIED BY 'password'"
# mysql -e "GRANT ALL ON world.* TO airflow@localhost"
© 2023 NTT DATA Corporation 17
Airflow への OpenLineage の導入・実行例
4. 3で登録したアカウント情報を Airflow の connection に登録 (Web UI から実行してもよい)
5. 以下の DAG ファイルを ~/airflow/dags 以下に配置し, Web UIからDAGをunpauseして実行 (CLI から実行してもよい)
$ . ~/OL/bin/activate
$ airflow connections delete mysql_default
$ airflow connections add mysql_default --conn-uri mysql://airflow:password@localhost/world
$ cat airflow/dags/count_cities.py
import pendulum
from airflow.decorators import dag
from airflow.providers.mysql.operators.mysql import MySqlOperator
@dag(dag_id="count_cities", schedule_interval=None,
start_date=pendulum.datetime(2023, 1, 1, tz="UTC"))
def CountCities():
MySqlOperator(
task_id="count_cities",
sql="""
CREATE TABLE IF NOT EXISTS citycount AS
SELECT Code, count(*)
FROM country a JOIN city b
ON a.Code = b.CountryCode
GROUP BY Code
""",
)
dag = CountCities()
...
© 2023 NTT DATA Corporation 18
Airflow への OpenLineage の導入・実行例
6. DAG Run が成功した後で Marquez を確認すると、リネージ情報が登録されている。
© 2023 NTT DATA Corporation 19
Airflow と OpenLineage の連携の仕組み
• OpenLineage は, Airflow の Operator に対応する Extractor を通じてリネージ情報を取得し、メタデータ管理ツール
に送信する。バージョン 0.21.1 時点では以下の Operator に対応している。
Airflow Operator OpenLineage Extractor
PostgresOperator PostgresExtractor
MySqlOperator MySqlExtractor
AthenaOperator, AWSAthenaOperator AthenaExtractor
BigQueryOperator, BigQueryExecuteQueryOperator BigQueryExtractor
SnowflakeOperator SnowflakeExtractor
TrinoOperator TrinoExtractor
GreatExpectationsOperator GreatExpectationsExtractor
SFTPOperator SFTPExtractor
FTPFileTransmitOperator FTPExtractor
BashOperator, PythonOperator BashExtractor, PythonExtractor
RedshiftDataOperator, RedshiftSQLOperator RedshiftDataExtractor, RedshiftSQLExtractor
SageMakerProcessingOperator,
SageMakerProcessingOperatorAsync
SageMakerProcessingExtractor
SageMakerTrainingOperator, SageMakerTrainingOperatorAsync SageMakerTrainingExtractor
SageMakerTransformOperator, SageMakerTransformOperatorAsync SageMakerTransformExtractor
S3CopyObjectExtractor, S3FileTransformExtractor S3CopyObjectExtractor, S3FileTransformExtractor
GCSToGCSOperator GCSToGCSExtractor
© 2023 NTT DATA Corporation 20
Extractor の自作方法
• 使っている Operator/Transfer が前頁のリストにない場合は, Extractor を自作できる
• 基本的には、OpenLineage が提供する BaseExtractor を継承し、以下の3つのメソッドを実装したクラスを登録すればよい
• 詳細は以下のブログ記事で紹介されている
• https://openlineage.io/blog/extractors/
• https://openlineage.io/blog/operators-and-extractors-technical-deep-dive/
class BaseExtractor(ABC, LoggingMixin):
@classmethod
def get_operator_classnames(cls) -> List[str]:
...
@abstractmethod
def extract(self) -> Optional[TaskMetadata]:
...
def extract_on_complete(self, task_instance) -> Optional[TaskMetadata]:
...
リネージ情報を送信する Operator の名前
Operator の開始時に送信するリネージ情報の定義
Operator の終了時に送信するリネージ情報の定義
© 2023 NTT DATA Corporation 21
まとめ
• データリネージとは、データの送信元や加工内容、送信先に関するメタデータであり、管理ツールに一元化することで業務理解
や影響分析、トラブルシュート等に有用
• OpenLineage は、メタデータ管理ツールごとにまちまちなリネージ情報の収集方法をオープン標準化するためのプロジェクトで
あり、Airflow や Spark, dbt などに対応
• OpenLineage に対応したメタデータ管理ツールのリファレンス実装として Marquez が存在
• Airflow 2.3 以上であれば, openlineage-airflow パッケージをインストールするだけで容易に導入可能
• 多くの Airflow Operator をサポート済みであるのに加えて、ユーザ自身で Extractor を追加することで未サポートの
Operator にも対応可能
© 2023 NTT DATA Corporation
本資料に記載されている会社名、商品名、
またはサービス名は、各社の登録商標または商標です。

More Related Content

What's hot

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
hamaken
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
NTT DATA Technology & Innovation
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
hamaken
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
Amazon Web Services Japan
 
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushiGoogle Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Platform - Japan
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
 
インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介
MicroAd, Inc.(Engineer)
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
 

What's hot (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushiGoogle Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushi
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 

Similar to OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)

Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
オラクルエンジニア通信
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
Kimihiko Kitase
 
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
decode2016
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Couchbase Japan KK
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
日本マイクロソフト株式会社
 
Azure &lt;3 Openness
Azure &lt;3 OpennessAzure &lt;3 Openness
Azure &lt;3 Openness
Keiji Kamebuchi
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
samemoon
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
Takamasa Maejima
 
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
株式会社MonotaRO Tech Team
 
OSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-UpdateOSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-Update
Kimihiko Kitase
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Daiyu Hatakeyama
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
Kuniteru Asami
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
Kazuto Kusama
 
Spark on sql server?
Spark on sql server?Spark on sql server?
Spark on sql server?
Oda Shinsuke
 
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートOracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
オラクルエンジニア通信
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Yoichi Kawasaki
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
Shinichiro Arai
 
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
Shin Matsumoto
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
Ryusuke Kajiyama
 

Similar to OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料) (20)

Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
 
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
 
Azure &lt;3 Openness
Azure &lt;3 OpennessAzure &lt;3 Openness
Azure &lt;3 Openness
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
 
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
 
OSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-UpdateOSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-Update
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
 
Spark on sql server?
Spark on sql server?Spark on sql server?
Spark on sql server?
 
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートOracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 

More from NTT DATA Technology & Innovation

pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
NTT DATA Technology & Innovation
 
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
NTT DATA Technology & Innovation
 
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
NTT DATA Technology & Innovation
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
TiDBの可用性構成パターン (TiUG Meetup #2 発表資料)
 
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
転生したらQAエンジニアが不在のスクラムチームでスクラムマスターをすることになった件 ~チームでアジャイル品質・アジャイルテスティングに向き合う肝はコミュ...
 
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
せっかくのOSSなんだし、ソースコード読むよね? 〜Apache Kafkaを例にしたOSSソースコードリーディングの基本〜 (Open Source C...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 

Recently uploaded

【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
TsuyoshiSaito7
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
Hironori Washizaki
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
TsuyoshiSaito7
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
shogotaguchi
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
iPride Co., Ltd.
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo Lab
 

Recently uploaded (10)

【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
 
Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
 
Matsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit IntroductionMatsuo-Iwasawa Lab. Research unit Introduction
Matsuo-Iwasawa Lab. Research unit Introduction
 

OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)

  • 1. © 2023 NTT DATA Corporation OpenLineage による Airflow のデータ来歴の収集と可視化 @Airflow Meetup Tokyo #3 2023/03/16 株式会社NTTデータ 関 堅吾
  • 2. © 2023 NTT DATA Corporation 2 1. Data Lineage とは何か 2. OpenLineage とは何か 3. Airflow で OpenLineage を使う方法
  • 3. © 2023 NTT DATA Corporation 自己紹介 • 株式会社NTTデータ 技術開発本部所属のデータエンジニア/OSS開発者 • Apache Hadoop・Apache Spark といった、並列分散処理 OSS を用いたデータ基盤の構築・運用支援やサポート, R&D を行っています • データエンジニアリング関係のいくつかの OSS 開発にも参加しており、いくつかのプロジェクトでコミッタを務めています • ワークフローエンジン: • Hadoop 関連 OSS のパッケージング・構築・運用管理: • データフォーマット・RPC: • GIS ライブラリ: • OSSプロジェクトの品質・テスト改善ツール群:
  • 4. © 2023 NTT DATA Corporation 4 01 Data Lineage とは何か
  • 5. © 2023 NTT DATA Corporation 5 Data Lineage とは • "Data lineage includes the data origin, what happens to it, and where it moves over time" (Wikipedia より引用: https://en.wikipedia.org/wiki/Data_lineage) • データの系譜・来歴(データをどこから受け取り、どのような加工を経て、どこへ送られるのか)を追跡すること ※図は https://marquezproject.ai/ から引用
  • 6. © 2023 NTT DATA Corporation 6 Data Lineage の用途:業務理解・影響分析 ? 新しい処理を追加したいが、 必要なデータをどこから持って くればよい? このデータセットの形式を変更 したら、どの処理やデータセット に影響がある? このデータセットの値は、 何に基づいて・どういった 方法で計算されている? :入出力データセット :移動・コピー・加工などの処理
  • 7. © 2023 NTT DATA Corporation 7 Data Lineage の用途:トラブルシュート 処理結果のデータがおかしい! 問題の原因はどこだ? :入出力データセット :移動・コピー・加工などの処理
  • 8. © 2023 NTT DATA Corporation 8 02 OpenLineage とは何か
  • 9. © 2023 NTT DATA Corporation 9 Data Lineage をサポートするメタデータ管理ツール • Data Lineage を含むメタデータを管理するツール (※) は近年活発に開発されており, OSS だけでも多数の製品が存在 • 現状のままだと、ETLツール (※) x メタデータ管理ツールの組合せ数分、連携機能を実装する必要がある (図は https://openlineage.io/docs/ より引用) ※本資料では、データの構造や各項目の意味、所有者や開示範囲、リネージ情報などを含む「データに関するデータ」を格納・提供するツールを「メタデータ管理ツール」、 データの移動やコピー、加工などを行いリネージデータの発生源となるツールを「ETLツール」と総称する
  • 10. © 2023 NTT DATA Corporation 10 OpenLineage とは • リネージ情報を収集するための REST API を, OpenAPI 仕様を用いてオープン標準化するためのプロジェクト • ETLツール側では, OpenLineage にさえ対応すれば、メタデータ管理ツールごとに異なる収集方法に対応しなくて済む • OpenLineage からメタデータ管理ツールへの連携は、リネージデータの取り込み方法に応じた backend を設置することで実現 (図は https://openlineage.io/docs/ より引用)
  • 11. © 2023 NTT DATA Corporation 11 OpenLineage の歴史 • Twitter 社で Apache Parquet を開発した Julien Le Dem が2020/12 にプロジェクトを立ち上げ • 彼が設立した DataKin 社が開発の中心だったが、後に Airflow の SaaS 提供会社である Astronomer に買収され、 引き続き同社が開発の中心を担っている • WeWork が開発した Marquez が, OpenLineage でリネージデータを収集するメタデータ管理ツールのリファレンス実装と なっている • Marquez, OpenLineage ともに, Linux Foundation のサブ組織である LF AI & Data Foundation 傘下で開発中 • OpenLineage は, 2021/07 に sandbox project として参加し, 2023/01 に incubation stage に昇格
  • 12. © 2023 NTT DATA Corporation 12 OpenLineage の現在 • 2023/03 時点の最新バージョンは 0.21.1 • ここ最近は毎月1~3回のペースでリリースしており、活発に開発を継続中 • ETLツールとしては Airflow, Spark, dbt などをサポート • Apache Flinkもサポートしているが、まだexperimental扱い • 月次の TSC (Technical Steering Committee) meeting の議事録・録画が公開されている • 開発を主導している Astronomer 以外にも, ETL/データマネジメント系の SaaS ベンダ (Atlan, Collibra, Fivetran, MANTA 等) に加えて、クラウド・エンタープライズ系の大手ベンダ (Microsoft, AWS, HPE等) も参加 • Microsoft や AWS は、以下のようなドキュメント・記事も公開している • Azure Databricks のリネージ情報を OpenLineage を用いて Microsoft Purview に収集 https://learn.microsoft.com/en-us/samples/microsoft/purview-adb-lineage-solution-accelerator/azure- databricks-to-purview-lineage-connector/ • MWAA (AWSのAirflowマネージドサービス) のリネージ情報を OpenLineage を用いて Marquez に収集する例 https://aws.amazon.com/blogs/big-data/automate-data-lineage-on-amazon-mwaa-with-openlineage/ (図は https://openlineage.io/docs/ より引用)
  • 13. © 2023 NTT DATA Corporation 13 03 Airflow で OpenLineage を使う方法
  • 14. © 2023 NTT DATA Corporation 14 Airflow への OpenLineage の導入・実行例 • Airflow 2.3 以上を使用している場合, openlineage-airflow パッケージをインストールするだけで利用可能 • setuptools の entrypoint 機能を使った plugin 登録方式を利用し, Airflow の plugin として追加される • バージョン2.3から Airflow に導入された Listener API を利用している • このListener APIを追加したのもOpenLineageの開発者 (https://github.com/apache/airflow/pull/20443) • OpenLineage に対応したメタデータ管理ツールを立ち上げた上で、そのリネージデータ送信先URLを環境変数 OPENLINEAGE_URL に指定するか、設定ファイルに記述して Airflow を起動する • なお、本パッケージを Airflow の provider に移管する提案 (AIP-53) も Airflow コミュニティに提出されており、将来的に は導入方法が変更されると思われる $ pip install openlineage-airflow $ airflow plugins name | macros | listeners | source ==================+=============================================================+==============================+=========================================================== OpenLineagePlugin | openlineage.airflow.macros.lineage_run_id,openlineage.airfl | openlineage.airflow.listener | openlineage-airflow==0.21.1: | ow.macros.lineage_parent_id | | EntryPoint(name='OpenLineagePlugin', | | | value='openlineage.airflow.plugin:OpenLineagePlugin', | | | group='airflow.plugins') $ OPENLINEAGE_URL=http://localhost:3000 airflow standalone
  • 15. © 2023 NTT DATA Corporation 15 Airflow への OpenLineage の導入・実行例 実際に Marquez をメタデータ管理ツールとして、リネージ情報を送信するまでの例を以下に示す。(Ubuntu 22.04 上で確認) 1. (簡便のため Docker コンテナとして) Marquez を起動する。 コンテナが起動したらブラウザで3000番ポートに接続する。この時点では Marquez には何のリネージ情報も登録されていない。 $ sudo apt-get install -y docker.io docker-compose $ sudo usermod $USER -aG docker (logout & relogin) $ git clone --depth=1 --branch=0.31.0 https://github.com/MarquezProject/marquez $ cd marquez $ docker/up.sh
  • 16. © 2023 NTT DATA Corporation 16 Airflow への OpenLineage の導入・実行例 2. 別のターミナルから Airflow と OpenLineage をインストールし, OpenLineage 関連の設定とともに Airflow を起動する。 後でサンプルの DB に MySQL を使用するため、対応するパッケージもインストールしておく。 3. 別のターミナルから MySQL をインストールし、サンプルデータを登録するとともに、動作確認用のアカウントを追加する。 $ sudo apt-get install -y python3-pip python3-venv libmysqlclient-dev $ python3 -m venv OL $ . OL/bin/activate $ pip install -U pip setuptools wheel $ AIRFLOW_VERSION=2.5.1 $ PYTHON_VERSION=$(python -V | awk '{ print $2 }' | awk -F. '{ print $1 "." $2 }') $ pip install "apache-airflow[mysql]==${AIRFLOW_VERSION}" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints- no-providers-${PYTHON_VERSION}.txt" $ pip install openlineage-airflow==0.21.1 $ OPENLINEAGE_URL=http://localhost:3000 OPENLINEAGE_NAMESPACE=my_namespace airflow standalone $ sudo apt-get install -y mysql-server $ sudo -i # curl -sL https://downloads.mysql.com/docs/world-db.tar.gz | tar xz # mysql < world-db/world.sql # mysql -e "CREATE USER airflow@localhost IDENTIFIED BY 'password'" # mysql -e "GRANT ALL ON world.* TO airflow@localhost"
  • 17. © 2023 NTT DATA Corporation 17 Airflow への OpenLineage の導入・実行例 4. 3で登録したアカウント情報を Airflow の connection に登録 (Web UI から実行してもよい) 5. 以下の DAG ファイルを ~/airflow/dags 以下に配置し, Web UIからDAGをunpauseして実行 (CLI から実行してもよい) $ . ~/OL/bin/activate $ airflow connections delete mysql_default $ airflow connections add mysql_default --conn-uri mysql://airflow:password@localhost/world $ cat airflow/dags/count_cities.py import pendulum from airflow.decorators import dag from airflow.providers.mysql.operators.mysql import MySqlOperator @dag(dag_id="count_cities", schedule_interval=None, start_date=pendulum.datetime(2023, 1, 1, tz="UTC")) def CountCities(): MySqlOperator( task_id="count_cities", sql=""" CREATE TABLE IF NOT EXISTS citycount AS SELECT Code, count(*) FROM country a JOIN city b ON a.Code = b.CountryCode GROUP BY Code """, ) dag = CountCities() ...
  • 18. © 2023 NTT DATA Corporation 18 Airflow への OpenLineage の導入・実行例 6. DAG Run が成功した後で Marquez を確認すると、リネージ情報が登録されている。
  • 19. © 2023 NTT DATA Corporation 19 Airflow と OpenLineage の連携の仕組み • OpenLineage は, Airflow の Operator に対応する Extractor を通じてリネージ情報を取得し、メタデータ管理ツール に送信する。バージョン 0.21.1 時点では以下の Operator に対応している。 Airflow Operator OpenLineage Extractor PostgresOperator PostgresExtractor MySqlOperator MySqlExtractor AthenaOperator, AWSAthenaOperator AthenaExtractor BigQueryOperator, BigQueryExecuteQueryOperator BigQueryExtractor SnowflakeOperator SnowflakeExtractor TrinoOperator TrinoExtractor GreatExpectationsOperator GreatExpectationsExtractor SFTPOperator SFTPExtractor FTPFileTransmitOperator FTPExtractor BashOperator, PythonOperator BashExtractor, PythonExtractor RedshiftDataOperator, RedshiftSQLOperator RedshiftDataExtractor, RedshiftSQLExtractor SageMakerProcessingOperator, SageMakerProcessingOperatorAsync SageMakerProcessingExtractor SageMakerTrainingOperator, SageMakerTrainingOperatorAsync SageMakerTrainingExtractor SageMakerTransformOperator, SageMakerTransformOperatorAsync SageMakerTransformExtractor S3CopyObjectExtractor, S3FileTransformExtractor S3CopyObjectExtractor, S3FileTransformExtractor GCSToGCSOperator GCSToGCSExtractor
  • 20. © 2023 NTT DATA Corporation 20 Extractor の自作方法 • 使っている Operator/Transfer が前頁のリストにない場合は, Extractor を自作できる • 基本的には、OpenLineage が提供する BaseExtractor を継承し、以下の3つのメソッドを実装したクラスを登録すればよい • 詳細は以下のブログ記事で紹介されている • https://openlineage.io/blog/extractors/ • https://openlineage.io/blog/operators-and-extractors-technical-deep-dive/ class BaseExtractor(ABC, LoggingMixin): @classmethod def get_operator_classnames(cls) -> List[str]: ... @abstractmethod def extract(self) -> Optional[TaskMetadata]: ... def extract_on_complete(self, task_instance) -> Optional[TaskMetadata]: ... リネージ情報を送信する Operator の名前 Operator の開始時に送信するリネージ情報の定義 Operator の終了時に送信するリネージ情報の定義
  • 21. © 2023 NTT DATA Corporation 21 まとめ • データリネージとは、データの送信元や加工内容、送信先に関するメタデータであり、管理ツールに一元化することで業務理解 や影響分析、トラブルシュート等に有用 • OpenLineage は、メタデータ管理ツールごとにまちまちなリネージ情報の収集方法をオープン標準化するためのプロジェクトで あり、Airflow や Spark, dbt などに対応 • OpenLineage に対応したメタデータ管理ツールのリファレンス実装として Marquez が存在 • Airflow 2.3 以上であれば, openlineage-airflow パッケージをインストールするだけで容易に導入可能 • 多くの Airflow Operator をサポート済みであるのに加えて、ユーザ自身で Extractor を追加することで未サポートの Operator にも対応可能
  • 22. © 2023 NTT DATA Corporation 本資料に記載されている会社名、商品名、 またはサービス名は、各社の登録商標または商標です。