この記事では、オープンソースのモダンなデータカタログのDataHubでS3上のデータをUI, CLIを用いてIngestします。
本記事ではDataHubはEKSであることを前提として以降説明します。
UI編
Secretの登録
Ingestion > Secretsから登録を行います。

S3上のデータの登録
Ingestion > Sources > Create new sourceから登録を行います。

データソースのタイプにS3は存在しないため、Otherを選択し、以下のようにyamlを書いて設定します。
先ほど登録したsecretsを用い以下のように登録します。
CLI編
Python環境のセットアップ
現時点ではPython バージョン3.11の利用が推奨されています。
以下のコマンドを実施し操作に必要なPythonパッケージをインストールします。
バージョンを表示させて、datahubパッケージが正常にインストールされたかを確認します。
その他連携に必要なパッケージのインストールは公式ドキュメントのInstalling Pluginsを参照願います。
ここではREST API用のパッケージとs3用のパッケージを以下のコマンドでインストールします。
GMSのエンドポイント確認
以下のコマンドでGMSのエンドポイントを確認します。
以下のような出力が得られるので、datahub-datahub-gms
のEXTERNAL-IPを使ってアクセスします。
アクセスTokenの生成
以下の画像のようにUI (設定 > Access Tokens > Create new token) からTokenを事前に生成しコピーしておきます。

Ingestの実行
UIの時と同様にレシピをyamlで作成します。
ここではUI編で作成したレシピに加えてREST APIへのsinkの設定が必要となります。
"Your API key"の部分は上で作成したtokenをコピーして使用してください。
ingestの実行。
SDK編
Python環境のセットアップ
パッケージとしてはCIL編と同様、acryl-datahub[datahub-rest], acryl-datahub[s3]が必要となります。
パッケージのインストールについてはCLI編を参照願います。
Ingestionの実行
以下のようなPythonコードを準備し、Python scriptを実行します。
CLI編で作成したyamlファイルとtokenを再利用します。
まとめ
この記事では、DataHubでS3のデータをingestする方法ついて紹介しました。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
