このデータコネクタを使用すると、Brandwatch の Mention オブジェクトを Treasure Data にインポートできます。
API の制限。クエリまたはクエリグループに大量のメンション(例えば、5000 件以上のメンション)が含まれる場合、すべてのメンションを取得するために最大 50 件のリクエストが必要になります。page size パラメータを使用してリクエストを管理してください。
以下のトピックに進みます:
- Treasure Data アカウントの基本的な知識とアクセス権
- Brandwatch アカウントの基本的な知識とアクセス権
Integrations Hub > Catalog に移動します。Brandwatch を検索して選択します。

ダイアログが開きます。
Brandwatch のユーザー名とパスワード情報を入力し、Continue を選択して接続に名前を付けます:

接続を作成すると、自動的に Integrations Hub > Catalog に戻ります。作成した接続を探して New Source を選択します。
ダイアログが開きます。詳細を入力して Next を選択します。

次に、以下のようなダイアログでデータのプレビューが表示されます。変更を加えるには、Advanced Settings を選択してエラーのスキップやレート制限などのオプションを変更できます。それ以外の場合は、Next を選択します。
データの転送先となる既存のデータベースとテーブルを選択するか、新しく作成します。
Schedule タブでは、1 回限りの転送を指定するか、自動的に繰り返される転送をスケジュールすることができます。Once now を選択した場合は、Start Transfer を選択します。Repeat… を選択した場合は、スケジュールオプションを指定してから Schedule Transfer を選択します。
転送が実行されると、Data Workbench > Databases で転送結果を確認できます。対応するジョブが Jobs セクションに表示されます。
これでデータの分析を開始する準備が整いました。
最新の TD Toolbelt をインストールできます。
$ td --version
0.15.8Brandwatch の認証情報と転送情報を含む設定ファイル(例: load.yml)を次の例のように準備します。
in:
type: brandwatch
username: xxxxxxxxxx
password: xxxxxxxxxx
project_name: xxx
query_name: xxx
from_date: yyyy-MM-dd'T'hh:mm:ss.SSS'Z'
to_date: yyyy-MM-dd'T'hh:mm:ss.SSS'Z'
out:
mode: replaceこの例は、クエリを実行して Brandwatch のメンションをダンプする方法を示しています。クエリ以外に、メンションを取得するための別のオプション query_group もあります:
in:
type: brandwatch
username: xxxxxxxxxx
password: xxxxxxxxxx
project_name: xxx
query_group_name: xxx
from_date: yyyy-MM-dd'T'hh:mm:ss.SSS'Z'
to_date: yyyy-MM-dd'T'hh:mm:ss.SSS'Z'
out:
mode: replaceusername: Brandwatchアカウントのユーザー名(string、必須)
password: Brandwatchアカウントのパスワード(string、必須)
project_name: すべてのクエリ、クエリグループ、メンションなどが属するBrandwatchプロジェクト(string、必須)
query_name: メンションを取得するために実行されるBrandwatchクエリ名(string、オプション)
query_group_name: メンションを取得するために実行されるBrandwatchクエリグループ名(string、オプション)
- 注意: query_name または query_group_name のいずれかが存在する必要があり、両方が同時に存在してはいけません
from_date: レコードを取得する開始日時を指定します(日付形式: yyyy-MM-dd'T'hh:mm:ss.SSS'Z')(string、必須、境界値を含む)
to_date: レコードを取得する終了日時を指定します(日付形式: yyyy-MM-dd'T'hh:mm:ss.SSS'Z')(string、必須、境界値を含まない)
retry_initial_wait_msec: Brandwatch APIを呼び出す各リトライロジックの初期待機時間(ミリ秒単位)を提供するパラメータ
max_retry_wait_msec: Brandwatch APIを呼び出す各リトライの最大待機時間(ミリ秒単位)を提供するパラメータ(int、オプション)
retry_limit: Brandwatch APIを呼び出す試行回数を提供するパラメータ(int、オプション)
page_size: API呼び出しごとに取得されるメンション数を提供するパラメータ
- 注意: このパラメータは、query または query group に大量のメンションが含まれている場合にAPI制限を克服するのに非常に役立ちます。例えば、query X に合計5000件のメンションが含まれている場合、デフォルト設定ではすべてのメンションを取得するのに最大50回のリクエストが必要になり、リクエスト数が多いほどAPI制限に達する可能性が高くなります。page_size を 200 に変更すると、前述のクエリでは最大25回のリクエストで済みます
td connector:preview コマンドを使用して、インポートされるデータをプレビューできます。
td connector:preview load.ymlロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されるデータベースとテーブルを指定する必要があります。
Treasure Dataのストレージは時間によってパーティション化されているため、--time-column オプションを指定することをお勧めします(data partitioningも参照してください)。オプションが指定されていない場合、データコネクタは最初の long または timestamp カラムをパーティショニング時間として選択します。--time-column で指定されたカラムのタイプは、long または timestamp タイプのいずれかでなければなりません。
データに時間カラムがない場合は、add_time フィルタオプションを使用して追加できます。詳細はadd_time filter pluginを参照してください。
td connector:issue load.yml \
--database td_sample_db \
--table td_sample_table \
--time-column modifieddate上記のコマンドは、すでに database(td_sample_db) と table(td_sample_table) を作成していることを前提としています。データベースまたはテーブルがTDに存在しない場合、このコマンドは成功しないため、データベースとテーブルを手動で作成するか、td connector:issue コマンドで --auto-create-table オプションを使用してデータベースとテーブルを自動作成してください。
$ td connector:issue load.yml \
--database td_sample_db \
--table td_sample_table \
--time-column modifieddate --auto-create-table"--time-column"オプションで時間形式のカラムを「パーティショニングキー」に割り当てることができます。
定期的なBrandwatchインポートのために、定期的なデータコネクタの実行をスケジュールできます。高可用性を確保するために、スケジューラは慎重に設定されています。この機能を使用することで、ローカルデータセンターに cron デーモンを配置する必要がなくなります。
新しいスケジュールは、td connector:create コマンドを使用して作成できます。スケジュールの名前、cron形式のスケジュール、データが保存されるデータベースとテーブル、およびData Connector設定ファイルが必要です。
$ td connector:create \
daily_Brandwatch_import \
"9 0 * * *" \
td_sample_db \
td_sample_table \
load.ymlcronパラメータは、@hourly、@daily、@monthlyの3つのオプションも受け付けます。デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは--timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートします。PST、CSTなどのタイムゾーンの略語は*サポートされておらず*、予期しないスケジュールになる可能性があります。
td connector:list で、スケジュールされたエントリのリストを確認できます。
$ td connector:list
+-------------------------+-------------+----------+-------+--------------+-----------------+------------------------------+
| Name | Cron | Timezone | Delay | Database | Table | Config |
+-------------------------+-------------+----------+-------+--------------+-----------------+------------------------------+
| daily_brandwatch_import | 9 0 * * * | UTC | 0 | td_sample_db | td_sample_table | {"type"=>"brandwatch", ... } |
+-------------------------+-------------+----------+-------+--------------+-----------------+------------------------------+td connector:show はスケジュールエントリの実行設定を表示します。
% td connector:show daily_brandwatch_import
Name : daily_brandwatch_import
Cron : 9 0 * * *
Timezone : UTC
Delay : 0
Database : td_sample_db
Table : td_sample_tabletd connector:history はスケジュールエントリの実行履歴を表示します。個々の実行結果を調査するには、td job jobid を使用します。
td connector:history daily_salesforce_marketing_cloud_importtd connector:delete はスケジュールを削除します。
$ td connector:delete daily_brandwatch_import増分ロードを有効にすることで、ジョブを反復的に実行するようスケジュールできます。次のジョブ実行の反復は、開始日と終了日の値から計算されます。
次の例では、開始日と終了日の間に11日間の範囲を使用します。
Start Date: 2018-03-01T00:00:00Z
End Date: 2018-03-11T00:00:00Z各ジョブは、開始日と終了日の間の期間によって決定される同じ時間範囲を持ちます。メンションの転送は、前回のジョブが完了した時点から開始され、期間が現在の日付を超えるまで続きます。さらなる転送は、完全な期間が利用可能になるまで遅延され、その時点でジョブが実行され、次の期間が利用可能になるまで一時停止します。
例:
- 現在の日付が 2018-04-26 で、from_date = 2018-04-01T00:00:00Z および to_date = 2018-04-11T00:00:00Z で増分ロードを渡す
- Cronは毎日特定の時刻に実行するように設定されている
1回目の実行(2018-04-26): from_date: 2018-04-01T00:00:00Z to_date: 2018-04-11T00:00:00Z (排他的、メンションは2018-03-10T23:59:59Zまで取得される)
2回目の実行(2018-04-27): from_date: 2018-04-11T00:00:00Z to_date: 2018-04-22T00:00:00Z
3回目の実行(2018-04-28): to_date が未来の日付のため実行できません
4回目の実行(2018-04-29): 実行できません
5回目の実行(2018-04-30): 実行できません
6回目の実行(2018-05-01): 実行できません
7回目の実行(2018-05-02): 実行できません
8回目の実行(2018-05-03): from_date: 2018-04-22T00:00:00Z to_date: 2017-05-03T00:00:00Z