このコラムでは、Airbyte と Amazon S3 および SNS を利用し、外部データソースをRapidTableへ送信する方法をご紹介します。
Airbyte とは?
Airbyteは、オープンソースのデータ統合プラットフォームで、異なるデータソースからデータを収集・変換し、データウェアハウスやデータベースに効率的に転送するためのツールです。
オープンソースであるAirbyteは多くのコミュニティによって開発・サポートを受けており、多くのコネクタを提供しています。
Airbyteを利用することで、データソース同士の接続方式を作り込む必要がなくなり、時間と手間が大幅に削減されます。
また画面操作だけでコネクターを作ることができます。
Airbyte は、クラウドサービスで利用する方法と自前のワークステーションにインストールする方法の2つが用意されています。
AWS とは?
Amazon Web Services(AWS) は、Amazonが提供するクラウドコンピューティングプラットフォームで、世界中の企業や個人がインフラストラクチャやサービスをクラウド上で利用できるようにするための包括的なサービスのセットです。
AWS のサービスは多岐に渡りますが、その中でも今回は Amazon S3 および Amazon SNS を利用します。
RapidTableのプロジェクトの用意
まず、RapidTable側でデータを受け取るためのプロジェクトとスキーマの用意をします。
csv形式でのデータ取り込みに際しては、csvの1行目が列名になる必要があります。
またcsv側の列名をRapidTableのスキーマ名(またはID)として紐付けることができるよう、あらかじめスキーマを定義してください。
次にプロジェクト設定画面に移り「受信設定」を行います。
受信方法を「Amazon SNS」とし、発行されたSNSサブスクリプションエンドポイントを後述するAmazon SNS側に設定します。
Amazon SNSの用意
Amazon のコンソール画面にて「Simple Notification Service」サービスを選択します。
新たに「トピックの作成」で、任意のトピックを作成します。
次にサブスクリプションの作成に進み、プロトコルで「HTTPS」を選択し、表示されるエンドポイントに先ほどRapidTable側で発行した「SNSサブスクリプションエンドポイント」を入力します。
Amazon S3の用意
AWS側としては最後に、Airbyteのデータの送り先となるAmazon S3のバケットを用意します。
バケットのプロパティにて「イベント通知」を設定します。今回のケースではイベントタイプを「オブジェクトの作成」で「すべてのオブジェクト作成イベントを選択します。
また「送信先」を「SNSトピック」とし、上記で作成した Amazon SNSのトピックを選択(またはARNの入力)をします。
Airbyte - コネクタの作成
Airbyte 画面にて、Sourcesから、「New source」ボタンで新しいデータソースを登録します。
(下図は参考までPostgreSQLの接続情報の入力画面です)
続いて送り先を Destinations から、「New destination」ボタンで新しい送り先を登録します。
送り先は「S3」とします。
先ほど作成したAmazon S3のバケット名やリージョンなどの接続情報を入力します。
「Output Format」は 'CSV: Comma-Separated-Values'として、「Flattening」は 'Root level flattening'にします。
最後に Connections にて、上記登録した Source と Destination をつなげます。
Connections画面の「New connection」ボタンを押し、「Define source」ステップにて先ほどのSource を選択します。
次の「Define destination」ステップでも先ほどのDestinationを選べます。
最後の「Configure connection」ステップで、送信間隔や送信対象となるフィールドを絞り込むことができます。
以上で、Airbyte と AWS を利用した RapidTable へのデータ転送基盤が構築できます。
Airbyte や AWS のアカウントの準備ができていれば、数十分ほどで一連の設定作業が完了します!
ぜひご活用ください!