「こんなことまでしてくれるの!?~データエンジニアを助けてくれるFivetranとSnowflake~」を開催しました #Fivetran #SnowflakeDB

2023.01.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

さがらです。

2023年1月19日に、こんなことまでしてくれるの!?~データエンジニアを助けてくれるFivetranとSnowflake~といったタイトルでウェビナーを開催しました。

この内、私は「データエンジニアを助けてくれるFivetranとSnowflakeの仕様&機能のご紹介」を担当しましたので、登壇資料、関連URL、質疑応答の内容を本記事でまとめていきます。

登壇資料

関連URL

Fivetranの概要・関連ブログ

Fivetranの仕様

Fivetranのデータ型の自動割当について

Snowflakeの概要・関連ブログ

Snowflakeのマイクロパーティションとクラスタリングについて

本登壇で紹介しましたFivetran×Snowflakeの事例

質疑応答

以下、ウェビナー中に口頭で回答した内容も含め、全ての質問への回答を記載しておりますので、御覧ください。

FivetranはSaaS製品からのデータロードをしたい方に向いているといったご紹介があったかと思いますが、オンプレにあるデータベース製品やExcel、スクラッチ系のシステムに格納されたデータの取得では、充分な恩恵は得られないのでしょうか。

オンプレデータベースやスクラッチ系システムのデータベースであったとしても、ネットワーク的に接続でき、かつ、Fivetranが対応しているデータベースを使用されているのであれば、クラウドDWHに同期することができます。

同期済みのソースDBについては、他のSaaSなどと同様にスキーマ変更や差分同期などの機能が適用できますので、データ同期に関わる運用の負荷軽減は可能です。 なお、ExcelなどのローカルデータについてはFivetranは対応しておりませんので、弊社であればAlteryxやCS Analyticsなど他のサービスと組み合わせてご提案することが多いです。

Fivetranで同期したデータを時系列ごとに保管したい場合は、1回目の同期➟1回目の同期のデータ退避(別のDB)➟2回目の同期➟2回目のデータ退避(別のDB)のやり方が正しいでしょうか。また、上記の更新をした場合、同期対象テーブルに更新をかけるわけではないので大丈夫かと思いますが、更新履歴としては更新対象レコードのみが消費されるイメージでいいでしょうか。

想定されている用途によって対応は異なると思いますが、Fivetranではソースと宛先のデータ差分を管理しておりますので、同期先のrawデータを直接編集・退避するのではなく、rawデータ側で時系列ごとのデータを保管するなどを実施いただければと思います。

今回のウェビナーではご紹介しておりませんが、dbt cloudを使用することで、分析用データの設計・テスト・運用などを一元管理することも可能かと思います。

FivetranはAzureの日本リージョンで使えますか?

Fivetranが稼働するパブリッククラウドのリージョンは以下のサイトに記載の通りです。本日現在、国内ではGoogleCloudの東京リージョンのみが対応となりますが、需要に応じて対応リージョンを随時追加いただいておりますので、是非ご要望ください。

Fivetranはエクセルの結合されたセルにも対応できますか?またShift-jisなど日本語にも対応してますか?

対応しているファイルは、CSV/TSV形式です。文字コードはShift-JISには対応しておらず、UTF-8などUnicodeのみとなります。詳細は以下のリンクからご確認いただけます。

Snowflakeにはインデックスという概念が存在しないと聞きますが、ご説明いただいたマイクロパーティションがあるため、それでも高速な検索が可能という認識でよいでしょうか。

はい、マイクロパーティションによりクラスタリングされている点がまずストレージ視点で見た時の強みとしてあります。

その上で、以下のような強力な仕様や機能があるため、Snowflakeは高速に処理を行うことが可能です

  • 強力なスペックを持つウェアハウス(シンプルなクエリであれば、XSのシングルクラスタでも6100万行のテーブルに対して数秒でクエリできる。こちらの動画でTableauを用いた際のデモをしております。)
  • テーブルの一部のレコードを抽出する際の処理速度を高速化させる「検索最適化サービス
  • 使用しているウェアハウスでは重い処理が来た際に、一時的にリソースを増強する「Query Acceleration

Fivetranについて、カラムの追加、削除は自動検知とありましたが、カラム変更(例えば、カラム型やカラム名の定義の変更)があった場合にはどうなりますでしょうか。(データの推論では変わることは理解しました。)

データソース側でカラム名の変更がある場合には、基本的に新しいカラムとして判断されます。データソース側でカラムのデータ型を変更した際は、コネクタによって仕様が異なると思いますので、ぜひ一度14日間の無償トライアルなどで試して頂けると良いかと思います。

Fivetranについて、取り込みに対して対応していないプロダクトに対して、カスタム的なものは実装可能でしょうか。

FivetranではAWSのLambdaなどを用いて、ユーザーが独自に定義した仕様でデータを取得することが可能です。下記のブログが参考になると思います。

Fivetranについて、データの取り込み時間を短縮させるなどのパフォーマンスチューニングの要素(例えば、並列度を上げるとか)はあるのでしょうか

基本的にFivetranで実行されるクエリをカスタムしたり処理の並列度合いの変更はできないため、DWH側で対応をする必要があります。例えば、Snowflakeの場合だと、Fivetranで使用しているウェアハウスのサイズを上げることなどが考えられます。

コネクタによってはデータを書換ではなく追加が可能とのことですが、データ追加時に重複している行は除く(uniqueにする)ことは可能ですか?

基本的にはFivetran側で定められたスキーマの構成に沿ってデータが差分追加でデータロードされますので、データロード後に必要に応じて不要な行を削除するなどの対応が必要となります。

Fivetranのデータ取り込みは同一ファイル名でなければデータ追加は難しいのでしょうか? 日付や時間でファイル名が変わるデータを同じテーブルに入れるなどといったことをしたいのですが。

FivetranはBoxやGoogleドライブなど、ファイルストレージのサービスとの同期も可能で、例えばGoogleドライブの場合はファイル名のパターンを入力することで、日付や時間でファイル名が変わるケースにも対応可能です。

最後に

本ウェビナーの登壇資料、関連URL、質疑応答の内容について、まとめてみました。

データの準備はFivetranで爆速で行うことができ、データの受け先となるSnowflakeは自動クラスタリングの恩恵を受けることでテーブルチューニングなど難しいことは気にしなくても十分な性能が出ることが多い、ということで、本来すべき「データ活用」に専念できるサービスとなっております。

そのため、データ基盤を構築するエンジニアリソースが足りない、技術力に自信がない、という方にこそ試してほしいのがFivetranとSnowflakeです。それぞれ無料トライアルもありますので、気になった方はぜひ試して頂けると嬉しいです。