Traffine I/O

日本語

2022-11-09

Singerの使い方

はじめに

Singerは、さまざまなソースからデータを取得し、目的の宛先に移動させるためのオープンソースのETLツールです。この記事では、Singerの使い方について紹介します。

Singer Tapの設定

SingerのTapは、ソースからデータを抽出し、JSON形式のデータを生成するスクリプトです。Tapsは、ETLプロセスの抽出部分を容易にします。この章では、最初のSinger Tapの選択、インストール、および設定方法について説明します。

Tapの選択

Singerはさまざまな種類のTapをサポートしており、データベース(Postgres、MySQL、MongoDB)、API(Salesforce、Stripe)、ファイル(CSV、Excel)など、特定のソースに合わせて設計されたTapが用意されています。抽出元となるデータソースに対応したTapを選択する必要があります。

Tapのインストール

必要なTapをインストールするために、pipコマンドを使用します。例えば、Salesforce用のTapをインストールするには、次のように入力します。

bash
$ pip install tap-salesforce

Tapの設定

Tapをインストールしたら、データソースに接続するためにTapを設定する必要があります。設定には、APIキー、ユーザー名、パスワード、ホスト名などのアクセス認証情報やその他のソース固有の設定が含まれます。

例えば、Salesforce Tapを設定する場合、次の構造のconfig.jsonファイルを作成します。

config.json
{
  "client_id": "your_salesforce_client_id",
  "client_secret": "your_salesforce_client_secret",
  "refresh_token": "your_salesforce_refresh_token",
  "start_date": "start_date_in_YYYY-MM-DD_format"
}

Singer Targetの設定

SingerのTargetは、Tapsからデータを受け取り、データベースやファイルなどの宛先にロードするものです。Targetsは、ETLプロセスのロード部分を容易にします。この章では、最初のSinger Targetの選択、インストール、および設定方法について説明します。

Targetの選択

Tapsと同様に、Singerはさまざまな種類のTargetをサポートしており、それぞれ特定の宛先に対応しています。目的のデータ宛先に対応したTargetを選択する必要があります。

Targetのインストール

必要なTargetをインストールするために、pipコマンドを使用します。例えば、Postgres用のTargetをインストールするには、次のように入力します。

bash
$ pip install target-postgres

Targetの設定

Targetも、目的の宛先に接続するために設定する必要があります。Tapsと同様に、設定にはアクセス認証情報やその他の宛先固有の設定が含まれます。

例えば、Postgres Targetを設定する場合、次の構造のconfig.jsonファイルを作成します。

config.json
{
  "host": "your_postgres_host",
  "port": "your_postgres_port",
  "user": "your_postgres_username",
  "password": "your_postgres_password",
  "dbname": "your_postgres_database"
}

Singerパイプラインの実行

TapとTargetを設定したら、SingerのETLパイプラインを実行する準備が整いました。このプロセスでは、TapとTargetのスクリプトを同時に実行し、データがソースから抽出されて宛先にロードされるようにします。

TapsとTargetsの組み合わせ

Singerでは、任意のTapを任意のTargetに接続することができます。これにより、ETLワークフローを柔軟に管理することができます。この接続は、TapとTargetのスクリプトを同時に実行し、Tapの出力(抽出されたデータ)をTargetにパイプして(ロード先に渡して)実現されます。

パイプラインの実行

TapとTargetをインストールして設定したら、次の手順でパイプラインを実行します。

  1. ターミナルまたはコマンドラインを開く

まず、ターミナルまたはコマンドラインインターフェースを開きます。TapとTargetのconfig.jsonファイルが格納されているディレクトリに移動します。

  1. Singerパイプラインの実行

次のコマンドでSingerパイプラインを実行します。

bash
$ tap-salesforce -c tap_config.json | target-postgres -c target_config.json
  • tap-salesforce -c tap_config.jsonは、SalesforceのTapをtaps_config.jsonの設定で実行します。
  • |(パイプ)記号は、Tapスクリプトの出力(抽出されたデータ)をTargetスクリプトの入力として渡します。
  • target-postgres -c target_config.jsonは、PostgresのTargetをtarget_config.jsonの設定で実行します。

このコマンドを実行すると、TapスクリプトがSalesforceからデータを抽出し、TargetスクリプトがこのデータをPostgresデータベースにロードします。

参考

https://www.singer.io/
https://github.com/singer-io/getting-started

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!