Skip to content
Last updated

Apptopiaインポート連携

このData Connectorを使用すると、ApptopiaデータソースオブジェクトをTreasure Dataにインポートできます。

前提条件

  • Treasure Dataの基本的な知識
  • Apptopiaの基本的な知識

TD Consoleを使用する

新しい接続を作成する

Treasure Dataでは、クエリを実行する前にデータ接続を作成して設定する必要があります。データ接続の一部として、連携にアクセスするための認証情報を提供します。

  1. TD Consoleを開きます。
  2. Integrations Hub > Catalogに移動します。
  3. Catalog画面の右端にある検索アイコンをクリックし、Apptopiaと入力します。
  4. Apptopiaコネクターの上にマウスを置き、Create Authenticationを選択します。 以下のダイアログが開きます。

ApptopiaのClient IDとSecret Keyの情報を編集します。次にContinueをクリックします。接続に名前を付け、Doneをクリックします。

新しい転送を作成する

Create Connectionを選択すると、Authenticationsタブに移動します。作成した接続を探し、New Transferを選択します。

以下のダイアログが開きます。詳細を編集し、Nextを選択します。

データをプレビューします。何か変更したい場合は、Advanced Settingsを選択するか、Nextを選択します。

Advanced Settingsでは、レート制限などのオプションを変更できます:

以下のダイアログに示されているように、データを転送するデータベースとテーブルを選択します:

データ転送のスケジュールを指定し、Start Transferを選択します:

新しいデータ転送が進行中であることがMy Input Transfersタブに表示され、対応するジョブがJobsセクションに表示されます。

コマンドライン

'td' command v0.11.9以降をインストールする

最新のTD Toolbeltをインストールできます。

$ td --version
0.15.0

設定ファイルの作成

以下のように、Apptopiaアカウントのアクセス情報を含む設定ファイル(例: load.yml)を準備します:

in:
  type: apptopia
  client: xxxxxxxx
  secret: xxxxxxxx
  target: publisher_performance (必須、付録Bを参照)
  store: itunes_connect (必須、付録Cを参照)
  start_date: 2017-01-01 (`category`および`country`以外のすべてのtargetに必須)
  end_date: 2017-02-01 (`category`および`country`以外のすべてのtargetに必須)
  requests_per_minute_limit: 300 (オプション、デフォルトは1000、付録Fを参照)
out:
  mode: replace

この例では、Apptopia Publisher Performanceデータソースを示しています:

  • client: ApptopiaクライアントID。

  • secret: Apptopiaシークレット。

  • target: インポートするApptopiaエンティティオブジェクト。

    • 利用可能なtargetのリストについては、付録を参照してください。
  • store: データを取得するモバイルマーケット

    • 利用可能なstoreのリストについては、付録を参照してください。
  • start_date: どの日付(yyyy-MM-dd)からプロダクトデータをインポートするか。このフィールドは、プロダクト使用状況(targetがproduct_usage)またはプロダクト売上(targetがproduct_sales)をアプリ内課金の内訳(breakdownにiapを含む)とともに取得する場合に必須です。

  • end_date: どの日付(yyyy-MM-dd)までプロダクトデータをインポートするか。このフィールドはオプションで、現在の日付によって制限されたstart_dateから最大60日間に自動調整されます。

  • requests_per_minute_limit: 1分あたりのAPI呼び出し数を制限

    • これらのオプションの使用方法については、付録を参照してください

利用可能なoutモードの詳細については、付録を参照してください

データのプレビュー(オプション)

td connector:previewコマンドを使用して、インポートされるデータをプレビューできます。

$ td connector:preview load.yml
+------------+------------------+--------------------+----
| id:string  | store:string     | country_iso:string | ...
+------------+------------------+--------------------+----
| 420233213  | "itunes_connect" | US                 |
| jp.td.app  | "google_play"    | JP                 |
+------------+------------------+--------------------+----

ロードジョブの実行

ロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されるdatabaseとtableを指定する必要があります。

Treasure Dataのストレージは時間でパーティション化されているため(データパーティショニングも参照)、--time-columnオプションを指定することをお勧めします。このオプションが指定されない場合、Data Connectorは最初のlongまたはtimestamp列をパーティショニング時間として選択します。--time-columnで指定される列の型は、longまたはtimestamp型のいずれかである必要があります。 データに時刻カラムがない場合は、add_timeフィルターオプションを使用して追加できます。詳細については、add_time Filter Plugin for Integrationsを参照してください。

$ td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column updated_date

上記のコマンドは、*database(td_sample_db)table(td_sample_table)*が既に作成されていることを前提としています。データベースまたはテーブルがTDに存在しない場合、コマンドは成功しませんので、Database and Table Managementを使用してデータベースとテーブルを作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してデータベースとテーブルを自動作成してください。

$ td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column updated_date --auto-create-table

「--time-column」オプションで、Time Formatカラムを「Partitioning Key」に割り当てることができます。

スケジュール実行

定期的なApptopiaインポートのために、Data Connectorの定期実行をスケジュールできます。高可用性を確保するために、スケジューラーを慎重に設定しています。この機能を使用することで、ローカルデータセンターでcronデーモンを使用する必要がなくなります。

スケジュールの作成

新しいスケジュールは、td connector:createコマンドを使用して作成できます。スケジュール名、cron形式のスケジュール、データが保存されるデータベースとテーブル、およびData Connector設定ファイルが必要です。

td connector:create \
daily_apptopia_import \
"10 0 * * *" \
td_sample_db \
td_sample_table \
load.yml

cronパラメータは、@hourly@daily@monthlyのオプションも受け付けます。 デフォルトでは、スケジュールは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_apptopia_import | 10 0 * * *   | UTC      | 0     | td_sample_db | td_sample_table | {"type"=>"apptopia", ... }  |
+-----------------------+--------------+----------+-------+--------------+-----------------+-----------------------------+

スケジュールの設定と履歴の表示

td connector:showは、スケジュールエントリの実行設定を表示します。

% td connector:show daily_apptopia_import
Name     : daily_apptopia_import
Cron     : 10 0 * * *
Timezone : UTC
Delay    : 0
Database : td_sample_db
Table    : td_sample_table

td connector:historyは、スケジュールエントリの実行履歴を表示します。各実行の結果を調査するには、td job jobidを使用します。

% td connector:history daily_apptopia_import
+--------+---------+---------+--------------+-----------------+----------+---------------------------+----------+
| JobID  | Status  | Records | Database     | Table           | Priority | Started                   | Duration |
+--------+---------+---------+--------------+-----------------+----------+---------------------------+----------+
| 578066 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-18 00:10:05 +0000 | 160      |
| 577968 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-17 00:10:07 +0000 | 161      |
| 577914 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-16 00:10:03 +0000 | 152      |
| 577872 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-15 00:10:04 +0000 | 163      |
| 577810 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-14 00:10:04 +0000 | 164      |
| 577766 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-13 00:10:04 +0000 | 155      |
| 577710 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-12 00:10:05 +0000 | 156      |
| 577610 | success | 10000   | td_sample_db | td_sample_table | 0        | 2015-04-11 00:10:04 +0000 | 157      |
+--------+---------+---------+--------------+-----------------+----------+---------------------------+----------+
8 rows in set

スケジュールの削除

td connector:deleteは、スケジュールを削除します。

$ td connector:delete daily_apptopia_import

付録

Outプラグインのモード

load.ymlのoutセクションでファイルインポートモードを指定できます。

append (デフォルト)

これはデフォルトモードで、レコードはターゲットテーブルに追加されます。

in:
  ...
out:
  mode: append

replace (td 0.11.10以降)

このモードは、ターゲットテーブルのデータを置き換えます。ターゲットテーブルに対して手動で行われたスキーマ変更は、このモードでは保持されます。

in:
  ...
out:
  mode: replace

利用可能なターゲット

TargetDescription
app_metadataアプリケーションメタデータ
app_performanceアプリケーションパフォーマンス
app_ranksアプリケーションランキング
app_sdks_metadataアプリケーションSDKsメタデータ
categoryカテゴリーのリスト
category_rank_lists各カテゴリーのトップチャートの生ランク
category_featured_lists各カテゴリーの注目アプリケーション
category_new_releases各カテゴリーの新しいアプリリリース
countryサポートされている国
publisher_metadataパブリッシャーメタデータ
publisher_performanceパブリッシャーパフォーマンス
sdk_metadataSDKメタデータ

利用可能なマーケット

StoreDescription
itunes_connectApple Store
google_playGoogle Play Market

レート制限

Apptopiaには、1分あたりのリクエスト数のレート制限があります。このレート制限は、一定の秒数後に自動的に更新されます。

同じApptopiaアカウントで複数の転送がある場合、アカウントの合計制限を超えない限り、詳細設定のrequests_per_minute_limitを使用して各転送のレート制限使用量を制御できます。例えば、アカウントに1000コール/分のクォータがある場合、app_performanceとpublisher_performanceターゲットの2つの転送を作成する場合、app_performance転送に600 rpmを使用し、残り(400 rpm)をpublisher_performance転送に使用できます。