Skip to content
Last updated

data.ai インポートインテグレーション(旧 AppAnnie)

Treasure Data の data.ai コネクタを使用して、data.ai(旧 AppAnnie)データソースオブジェクトを Treasure Data にインポートします。

前提条件

  • Treasure Data の基本的な知識
  • data.ai(旧 AppAnnie)の基本的な知識

レート制限

data.ai には 2 種類のレート制限があります。

  • 1 分あたりの呼び出し数
  • 1 日あたりのユーザーごとの呼び出し数制限

1 分あたりの呼び出し制限は一定秒数後に自動的に更新されますが、1 日あたりの呼び出し制限は毎日 00:00 PST に更新されます。

同じ data.ai アカウントで複数の転送を行う場合、アカウントの合計制限以下である限り、calls_per_minute_limit と calls_per_day_limit の設定を使用して、各 data.ai 転送のレート制限使用量を制御できます。たとえば、アカウントのクォータが 100 呼び出し/分、10000 呼び出し/日である場合、2 つの転送(たとえば、製品販売データと製品使用データ)を作成する場合、製品販売転送に 50 cpm と 5000 cpd を使用し、残り(50 cpm と 5000 cpd)を製品使用転送に使用できます。

TD Consoleを使用する

  1. 新しいConnectionを作成する

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

  1. TD Consoleを開きます。
  2. Integrations Hub > Catalogに移動します。
  3. Catalog画面の右端にある検索アイコンをクリックし、data.aiと入力します。
  4. data.aiコネクタにカーソルを合わせ、Create Authenticationを選択します。

次のダイアログが開きます。

Treasure Dataとdata.aiを認証する方法は、data.aiからインポートするためのデータコネクタを有効にする手順に影響します。

Treasure Dataは以下をサポートしています:

  • API Key
  • OAuth

Credentialsを使用した認証

data.aiのAPI Key情報を入力し、Continueを選択します。

OAuthを使用した認証

OAuthはUSリージョンでのみ利用可能です。

  1. 「Authentication Method」ドロップダウンから「OAuth」を選択して、OAuth 2を使用してdata.aiアカウントに接続します。
  2. OAuth認証方法を選択したら、Click hereを選択して新しいアカウントに接続します。新しいウィンドウからdata.aiアカウントにログインします:
  3. Data ConnectorとTreasure Dataアプリへのアクセスを許可します:
  4. Catalogにリダイレクトされます。新しいconnectionを作成するステップを繰り返し、新しいOAuth connectionを選択します。

接続フォームを完了したら、Continueを選択し、connectionに名前を付けます:

新しいTransferを作成する

connectionを作成すると、自動的にAuthenticationsタブに移動します。作成したconnectionを探し、New Transferを選択します。

次のダイアログが開きます。詳細を入力し、Nextを選択します。

次に、次のダイアログと同様のデータのPreviewが表示されます。設定を変更する場合はAdvanced Settingsを選択し、そうでない場合はNextを選択します。

エラー時のスキップやレート制限などのオプションを変更する場合は、Advanced Settingsで行います:

次のダイアログに示すように、データを転送するdatabaseとtableを選択します:

次のダイアログを使用してデータ転送のスケジュールを指定し、Start Transferを選択します:

My Input Transfersタブの下に、進行中の新しいデータ転送がリストされ、対応するジョブがJobsセクションにリストされているのが確認できます。

コマンドラインの使用

'td' コマンド v0.11.9 以降のインストール

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

$ td --version
0.15.0

設定ファイルの作成

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

in:
  type: app_data.ai
  apikey: xxxxxxxx
  target: product_sales (required, see Appendix B)
  breakdown_sales: date+country+iap (optional, see Appendix C)
  fetch_type: shared_products (optional, default: `both`, see Appendix D)
  start_date: 2017-01-01 (optional but required here as breakdown contains `iap`)
  end_date: 2017-02-01 (optional, default: current date)
  currency: USD (optional, default: USD, see Appendix E)
  skip_on_invalid_records: true (optional, default: false)
  calls_per_minute_limit: 15 (optional, 30 by default, see Appendix F)
  calls_per_day_limit: 800 (optional, 1000 by default, see Appendix F)
out:
  mode: replace

この例では、data.aiアカウントデータソースをダンプします:

  • apikey: data.ai apiKey。

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

  • breakdown: 製品の売上または使用データを取得するための内訳タイプ。

    • このフィールド名は、選択されたターゲットに応じて、breakdown_salesまたはbreakdown_usageに変更されます。
    • 使用方法と利用可能な内訳のリストについては、Appendix: Available Breakdownsを参照してください。
  • fetch_type: インポートする製品のソース(接続されたアカウントからの製品、共有経由の製品、またはその両方)。

  • start_date: 製品データをインポートする開始日(yyyy-MM-dd)。このフィールドは、製品使用(targetがproduct_usage)または製品売上(targetがproduct_sales)をアプリ内課金の内訳(breakdownにiapを含む)で取得する場合に必須です。

  • end_date: 製品データをインポートする終了日(yyyy-MM-dd)。このフィールドはオプションであり、現在の日付に基づいてstart_dateから最大60日間に自動調整されます。

  • currency: データが表示される通貨。

  • skip_on_invalid_records: エラー(無効なJSON、サポートされていないデータなど)を無視して、レコードの取得を続行します。(デフォルトはfalse)

  • calls_per_minute_limit / calls_per_day_limit: 1分あたり/1日あたりのAPI呼び出し数の制限

    • これらのオプションの使用方法については、Appendix: Rate Limitsを参照してください。

利用可能なoutモードの詳細については、Appendix: Modes for out Pluginを参照してください。

利用可能なターゲット

TargetDescription
account_connections接続されたアカウント
connected_products接続されたアカウントからの製品
shared_products外部アカウントから共有された製品
product_sales製品販売データ
product_usage製品使用データ
app_detailsアプリケーション詳細

利用可能な内訳

このフィールドは、製品販売または製品使用のインポートでのみ利用できます。

  • ターゲットが product_sales の場合、内訳フィールド名は breakdown_sales です
  • ターゲットが product_usage の場合、内訳フィールド名は breakdown_usage です
BreakdownProduct SalesProduct Usage
countryxx
country+iapx
country+devicex
datexx
date+countryxx
date+country+devicex
date+country+iapx
date+devicex
date+iapx
date+type+iapx
devicex
iapx

利用可能な取得タイプ

このフィールドは、製品販売、製品使用、アプリ詳細のインポートで利用できます。

SourceDescription
connected_products接続されたアカウントからの製品データのみをインポート
shared_products共有リストからの製品データのみをインポート
both両方の製品ソースをインポート

利用可能な通貨

このフィールドは、製品販売のインポートでのみ利用できます。必要に応じて、詳細は data.ai サポートにお問い合わせください。

Currency CodeSymbolFull Name of Currency
AUDA$Australian Dollar
BGN> лвBulgarian lev
BRLR$Brazilian real
CADC$Canadian Dollar
CHFCHFSwiss Franc
CNY¥Chinese Yuan
CZKCzech koruna
DKKkrDanish krone
EEKkrEstonian kroon
EUREuro
GBP£Pound sterling
HKDHK$Hong Kong dollar
HRKknCroatian kuna
HUFFtHungarian forint
IDRRpIndonesian rupiah
ILSIsraeli new shekel
INRIndian rupee
JPY¥Japanese yen
KRWSouth Korean won
LTLLtLithuanian litas
LVLLsLatvian lats
MXNMex$Mexican peso
MYRRMMalaysian ringgit
NOKkrNorwegian krone
NZD$New Zealand dollar
PHPPhilippine peso
PLNPolish złoty
RONleiRomanian new leu
RUBp.Russian rouble
SEKkrSwedish krona/kronor
SGDS$Singapore dollar
THB฿Thai baht
TRYTLTurkish lira
TWDNT$New Taiwan dollar
USD$United States dollar
ZARRSouth African rand

オプション: インポートするデータのプレビュー

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

$ td connector:preview load.yml
+-----------------+---------------------+-----------------+----
| account_id:long | account_name:string | vertical:string | ...
+-----------------+---------------------+-----------------+----
| 42023           | "Hello"             | apps            |
| 42045           | "World"             | apps            |
+-----------------+---------------------+-----------------+----

ロードジョブの実行

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

Treasure Data のストレージは時間で分割されているため、--time-column オプションを指定することを推奨します(Treasure Data でのデータパーティショニング も参照してください)。オプションが指定されていない場合、Data Connector は最初の long または timestamp カラムをパーティショニング時間として選択します。--time-column で指定されるカラムのタイプは、long または timestamp タイプのいずれかである必要があります。

データに時間カラムがない場合は、add_time フィルターオプションを使用して追加できます。詳細は インテグレーションの add_time フィルタープラグイン をご覧ください。

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

上記のコマンドは、データベース(td_sample_db)テーブル(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 updated_date --auto-create-table

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

スケジュール実行

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

スケジュールの作成

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

$ td connector:create \
    daily_dataai_import \
    "10 0 * * *" \
    td_sample_db \
    td_sample_table \
    load.yml
cron パラメータは、@hourly@daily@monthly の3つのオプションも使用できます。