# 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**を選択します。 ![](/assets/image2022-9-26_14-9-16.50f64bb1954056cb5080fbcd86f6cc65623b61888f47a3844f278ae4b91c7358.f346212f.png) 次のダイアログが開きます。 ![](/assets/image2022-9-26_14-10-55.6c37951e5d496b2867ea4589754b35ea6a9b0f8d50df26ab037dd74758bc12e4.f346212f.png) 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を選択します。 ![](/assets/image2022-9-26_14-25-0.fd419d7ac6a79a24d087d0c48a7ce996a844ae8b4c2a4ee8726ed1438c64e51e.f346212f.png) 接続フォームを完了したら、**Continue**を選択し、connectionに名前を付けます: ![](/assets/image2022-9-26_14-38-8.8ec2993ccf01cb5f6152dc364a9d186a46d21385bae2f8d80be5d64e00c273e9.f346212f.png) ### 新しいTransferを作成する connectionを作成すると、自動的にAuthenticationsタブに移動します。作成したconnectionを探し、**New Transfer**を選択します。 次のダイアログが開きます。詳細を入力し、**Next**を選択します。 ![](/assets/image2022-9-26_14-58-42.0b4a30c97f0498c0966b0473180afd257fa10eaf7380b7d8181e8aeed0fd0735.f346212f.png) 次に、次のダイアログと同様のデータの[Preview](https://docs.treasuredata.com/smart/project-product-documentation/about-data-preview)が表示されます。設定を変更する場合は**Advanced Settings**を選択し、そうでない場合は**Next**を選択します。 ![](/assets/image2022-9-26_15-13-11.80f8d159a30e03cf948a52405caf6a68c9c0692aa321717ccfbddc7d15085521.f346212f.png) エラー時のスキップやレート制限などのオプションを変更する場合は、Advanced Settingsで行います: ![](/assets/image2022-9-26_15-10-43.7601e28a2b141ab3fec5260648ac7591f06db23d6d16314b2e91e0decbf4764f.f346212f.png) 次のダイアログに示すように、データを転送するdatabaseとtableを選択します: ![](/assets/image2022-9-26_15-22-45.a1588ccccfea879024b02886ac5ccae026d01efac15690da21b5577f050207cf.f346212f.png) 次のダイアログを使用してデータ転送のスケジュールを指定し、**Start Transfer**を選択します: ![](/assets/image2022-9-26_15-28-17.6ed08957e2f36799154ee35592cbfdb67b5e0e057b729927b32c1840d9042d03.f346212f.png) My Input Transfersタブの下に、進行中の新しいデータ転送がリストされ、対応するジョブがJobsセクションにリストされているのが確認できます。 ## コマンドラインの使用 ### 'td' コマンド v0.11.9 以降のインストール 最新の[TD Toolbelt](https://toolbelt.treasuredata.com/)をインストールできます。 ``` $ 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エンティティオブジェクト。 - 利用可能なターゲットのリストについては、Appendix: [Appendix: Available Targets](/ja/int/data-ai-import-integration-formerly-appannie#h2__10606729)を参照してください。 - breakdown: 製品の売上または使用データを取得するための内訳タイプ。 - このフィールド名は、選択されたターゲットに応じて、breakdown_salesまたはbreakdown_usageに変更されます。 - 使用方法と利用可能な内訳のリストについては、[Appendix: Available Breakdowns](/ja/int/data-ai-import-integration-formerly-appannie#h2_721482935)を参照してください。 - fetch_type: インポートする製品のソース(接続されたアカウントからの製品、共有経由の製品、またはその両方)。 - 使用方法と利用可能なfetch_typeのリストについては、[Appendix: Available Fetch Types](/ja/int/data-ai-import-integration-formerly-appannie#h2_1431295940)を参照してください。 - start_date: 製品データをインポートする開始日(yyyy-MM-dd)。このフィールドは、製品使用(targetがproduct_usage)または製品売上(targetがproduct_sales)をアプリ内課金の内訳(breakdownにiapを含む)で取得する場合に必須です。 - end_date: 製品データをインポートする終了日(yyyy-MM-dd)。このフィールドはオプションであり、現在の日付に基づいてstart_dateから最大60日間に自動調整されます。 - currency: データが表示される通貨。 - 利用可能な通貨のリストについては、[Appendix: Available Currencies](/ja/int/data-ai-import-integration-formerly-appannie#h2_1030390800)を参照してください。 - skip_on_invalid_records: エラー(無効なJSON、サポートされていないデータなど)を無視して、レコードの取得を続行します。(デフォルトはfalse) - calls_per_minute_limit / calls_per_day_limit: 1分あたり/1日あたりのAPI呼び出し数の制限 - これらのオプションの使用方法については、[Appendix: Rate Limits](/ja/int/data-ai-import-integration-formerly-appannie#h1_1399524820)を参照してください。 利用可能なoutモードの詳細については、Appendix: Modes for out Pluginを参照してください。 ## 利用可能なターゲット | Target | Description | | --- | --- | | account_connections | 接続されたアカウント | | connected_products | 接続されたアカウントからの製品 | | shared_products | 外部アカウントから共有された製品 | | product_sales | 製品販売データ | | product_usage | 製品使用データ | | app_details | アプリケーション詳細 | ## 利用可能な内訳 このフィールドは、製品販売または製品使用のインポートでのみ利用できます。 - ターゲットが product_sales の場合、内訳フィールド名は breakdown_sales です - ターゲットが product_usage の場合、内訳フィールド名は breakdown_usage です | Breakdown | Product Sales | Product Usage | | --- | --- | --- | | country | x | x | | country+iap | x | | | country+device | | x | | date | x | x | | date+country | x | x | | date+country+device | | x | | date+country+iap | x | | | date+device | | x | | date+iap | x | | | date+type+iap | x | | | device | | x | | iap | x | | ## 利用可能な取得タイプ このフィールドは、製品販売、製品使用、アプリ詳細のインポートで利用できます。 | Source | Description | | --- | --- | | connected_products | 接続されたアカウントからの製品データのみをインポート | | shared_products | 共有リストからの製品データのみをインポート | | both | 両方の製品ソースをインポート | ## 利用可能な通貨 このフィールドは、製品販売のインポートでのみ利用できます。必要に応じて、詳細は data.ai サポートにお問い合わせください。 | Currency Code | Symbol | Full Name of Currency | | --- | --- | --- | | AUD | A$ | Australian Dollar | | BGN | > лв | Bulgarian lev | | BRL | R$ | Brazilian real | | CAD | C$ | Canadian Dollar | | CHF | CHF | Swiss Franc | | CNY | ¥ | Chinese Yuan | | CZK | Kč | Czech koruna | | DKK | kr | Danish krone | | EEK | kr | Estonian kroon | | EUR | € | Euro | | GBP | £ | Pound sterling | | HKD | HK$ | Hong Kong dollar | | HRK | kn | Croatian kuna | | HUF | Ft | Hungarian forint | | IDR | Rp | Indonesian rupiah | | ILS | ₪ | Israeli new shekel | | INR | ₹ | Indian rupee | | JPY | ¥ | Japanese yen | | KRW | ₩ | South Korean won | | LTL | Lt | Lithuanian litas | | LVL | Ls | Latvian lats | | MXN | Mex$ | Mexican peso | | MYR | RM | Malaysian ringgit | | NOK | kr | Norwegian krone | | NZD | $ | New Zealand dollar | | PHP | ₱ | Philippine peso | | PLN | zł | Polish złoty | | RON | lei | Romanian new leu | | RUB | p. | Russian rouble | | SEK | kr | Swedish krona/kronor | | SGD | S$ | Singapore dollar | | THB | ฿ | Thai baht | | TRY | TL | Turkish lira | | TWD | NT$ | New Taiwan dollar | | USD | $ | United States dollar | | ZAR | R | South 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 でのデータパーティショニング](https://docs.treasuredata.com/smart/project-product-documentation/data-partitioning-in-treasure-data) も参照してください)。オプションが指定されていない場合、Data Connector は最初の long または timestamp カラムをパーティショニング時間として選択します。--time-column で指定されるカラムのタイプは、long または timestamp タイプのいずれかである必要があります。 データに時間カラムがない場合は、add_time フィルターオプションを使用して追加できます。詳細は [インテグレーションの add_time フィルタープラグイン](https://docs.treasuredata.com/smart/project-product-documentation/add_time-filter-function) をご覧ください。 ``` $ td connector:issue load.yml --database td_sample_db --table td_sample_table --time-column updated_date ``` 上記のコマンドは、*データベース(td_sample_db)* と *テーブル(td_sample_table)* がすでに作成されていることを前提としています。TD にデータベースまたはテーブルが存在しない場合、このコマンドは成功しないため、[手動で](https://docs.treasuredata.com/smart/project-product-documentation/data-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" に割り当てることができます。 ### スケジュール実行 定期的な 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つのオプションも使用できます。 |