はじめに
DataSetを設定するときに、ReplaceメソッドまたはApendメソッドに基づいてデータを更新するオプションがあります。すべてのコネクターではなく一部のコネクターは、Upsert機能やPartition機能を持っています。この記事では、これらの機能について詳しく説明します。
デフォルトでは、すべてのDataFlow更新をReplaceメソッドで更新しています。しかしSQL変換によって、再帰的に追加するDataFlowを作成することも技術的に可能です。Replaceメソッドを使用すると、DataSetを実行するたびにテーブルが新しいデータに置き換えられます。しかしApendメソッドを使用すると、取得したすべての新しいデータが既存のDataSetの最下部に追加されます。
読み込むデータ量がそれほど大きくないDataSetの場合は、エラーとなる可能性の低い置換方式を使用することをお勧めします。
データの追加は次の場合に役立ちます。
-
読み込みと処理に時間がかかる場合
- データのスナップショットが欲しい場合
-
APIが、1回のクエリで返すデータの量を制限している場合
ReplaceメソッドまたはApendメソッドによるDataSet更新の設定方法について詳しくは、「DataSetのスケジュール設定」を参照してください。
データを置換する場合
処理時間を検討し、大量のデータを定期的に取得する時間とリソースがある場合、データ構造を置換することで、データを簡単に保守し、指定した時間にデータを更新することができます。このデータは最終状態のDataSetです。最終状態に到達するためにどんな処理を行ったかには関心がないものとします。例えば、実際に行われた取引、予約、その他の確定されたトランザクションを確認したいとします。データはトランザクションがいつ発生したのかを表示することによって、トランザクションデータを可視化できます。
データを置換するトランザクションデータベースの実行処理には負荷がかかりますが、多くの場合は完全に置換し、特定期間の履歴を取得し、定期的な履歴DataSetを持つように置換したほうが簡単になります。
使用事例
- 2年間の売上履歴データを取得し、毎月DataSetを置き換えることによって、常に2ヶ月間の履歴データを取得して可視化することができます。このタイプのトランザクションデータでは、状態は変更されません。毎月完全な置換を行うことができ、常に2年間の履歴DataSetを作成できます。2月の始めに2018年1月のデータを取得した場合、置換されたDataSetには2016年1月から2018年1月までのすべてのデータが表示されるはずです。次の月に置換する予定の場合、DataSetは2016年2月から2018年2月までのDataSetが得られるはずです。2年間のローリング期間を使っていますが、2016年1月の過去データは保存されていません。次の月のデータと置き換えられているからです。このタイプのトランザクションに対する置換DataSetでは、四半期の1週目、四半期の2週目など、すべての業績を見ることができます。
データを追加する場合
データをスナップショットしたい場合は、主に追加データプロセスを使用します。経時的な進捗を確認したり、可視化で進捗を表示したりすることができます。データを追加するもうひとつの主な理由は、データを完全に置換する処理負荷を避けるためです。
データを追加する際に注意すべき点と避けるべき点は、以下となります。
- 何らかの理由で更新に失敗した場合、データが欠落する可能性がある
-
重複したデータまたは正しく解釈されていないデータを、二重にカウントする可能性がある
また、時間セレクターに基づいてデータを追加する場合や、スケジュールした任意の期間にデータを追加する場合には、週単位または週単位のデータが失われないように確認する必要があります。重複レコードがないか確認する必要もあるでしょう。毎週、土曜日から日曜日に追加するように設定されている週のデータを、別のタイムゾーンで引き出している場合、お客様側では金曜日のデータの最後が、土曜日のデータの最初に反映されます。この結果、重複レコードが発生し、正しくないデータになる可能性があります。重複レコードの可能性があるため、データがクリーンで正確かどうかを確認しなければなりません。
重複レコードを検索して特定し、最後のDataSetから削除するために追加DataFlowを設定する方法について詳しくは、「再帰ETL」を参照してください。毎週データを置き換える場合、データを取得するときに意図的に重複するように設定することができます。再帰的にDataFlowを実行することによって、このような重複したデータを取得し、この処理を経た後にマスターを作成することができます。
可視化の進捗を確認したい場合に、追加データプロセスを使用することができます。データのスナップショット期間を毎週、毎月、または任意の期間に設定してスケジュールに追加すると、追加のDataSetには特定の識別子の特定期間の進捗を追跡して可視化するためのスナップショットデータが作成されます。
使用事例
- 識別子によって状態が変わるデータがある場合(例えば、Opportunity ID)、スナップショットを使用してデータを追加することを推奨します。例えば、お客様がSalesForceやセールス機会の移行データを見ているときに、様々な期間を経て、どのように機会ステージが進むかを知りたいとします。例えば、毎週月曜日にすべてのSalesForceの機会をスナップショットで撮影することによって、一定期間中の機会の移行を見ることができます。スナップショットを使用すると、機会Xを追跡できます。そして2ヶ月前にステージ1にいたことを確認し、ステージ2に進むのに2週間かかり、ステージ4に進むのに3週間かかったことなどが分かります。この方法を使うと、機会の進行に伴って販売サイクルがどのように変化したかを理解しフォローすることができます。
-
顧客プロフィールデータがあり、顧客がマーケティングファネルのどこにいるか、そして顧客がどのステージを進行中なのかを可視化によって確認したい場合は、スナップショットデータと追加処理を使用して、顧客が一定期間中に進むすべてのステージを確認することができます。
UpsertとPartition
一部のコネクターでは、再入力されたデータ(Upsertされたデータ)でDataSetを更新すると、最新の情報が確実に得られます。この機能は現在以下のコネクターで利用できます。
-
Shopify
-
HubSpot Upsert
-
Amazon S3
他のコネクターでは更新時にローリングウィンドウを使って選択できるため、重要なデータに集中して作業しやすくなります。パーティショニングされたコネクターには以下があります。
-
PostgreSQL
-
MySQLデータベース
-
MariaDBデータベース
-
Oracleデータベース
-
Amazon Redshift
-
Amazon Aurora
-
Amazon Athena
-
IBM DB2
-
IBM Informix
-
Snowflake
-
Vertica
-
Sybase/sap ASE
-
NetSuite SuiteAnalytics
コメント
0件のコメント
サインインしてコメントを残してください。