# LINE Via Crescendo Lab インポート連携

LINEは、アジアにおいてFacebook MessengerやInstagramが米国のモバイルユーザーにとって持つような存在です。友人とのコミュニケーションや、お気に入りの製品やサービスに関する新しいプロモーションを発見するための、迅速かつ簡単な方法です。LINEは台湾でナンバーワンのモバイルメッセージングプラットフォームです。また、日本とタイにおいても最大級のモバイルメッセージングプラットフォームの一つです。Crescendo LabsのMAAC APIを通じて、LINEをアクティベーションするための即座に使えるインテグレーションを開発しています。このインテグレーションにより、顧客情報のメンバーやセグメントをインジェストできます。

## 前提条件

- Treasure Dataの基本知識
- MAAC Crescendo Experienceアカウントの基本知識


## 制限事項

- アクセストークンの有効期間は、crescendo labとパートナーが署名した契約期間です。


## インクリメンタルデータロードについて

インクリメンタルローディングは、ソースから新しいレコードまたは更新されたレコードのみをTreasure Dataにロードすることです。特に大規模なデータセットに対して、フルロードと比較して効率的に実行されるため有用です。

インクリメンタルローディングは、多くのTreasure Dataインテグレーションで利用できます。場合によっては、単純なチェックボックスの選択で済みますが、他の場合では、インクリメンタルローディングを選択した後、指定する必要がある他のフィールドが提供されます。

## 制限事項、サポート、提案

- 一部のインテグレーションでは、インクリメンタルローディングを選択する場合、フルテーブルスキャンを回避するために列にインデックスがあることを確認する必要があります。
- incremental_columnsとしてサポートされるのは、Timestamp、Datetime、および数値列のみです。
- 複雑なクエリでは主キーを検出できないため、raw queryではincremental_columnsが必要です。


## インテグレーションのインクリメンタルローディングについて

Treasure Dataのインクリメンタルローディングには4つのパターン（3種類のデータコネクタ + 1つのワークフローtd_loadオペレータ）があり、3つのデータコネクタのロード例は次のとおりです：

- クラウドストレージサービス（例：AWS S3、GCSなど）
  - ファイル名の辞書順
- クエリ（例：MySQL、BigQueryなど）
  - 日時
- 可変期間（Google Analyticsなど）
  - ロードにstart_dateを使用


## コネクタのインクリメンタルローディング

インクリメンタルローディングが選択されている場合、コネクタのデータはインクリメンタルにロードされます。

このモードは、前回のスケジュール実行以降に変更されたオブジェクトターゲットのみを取得する場合に便利です。

例えば、UIでは：

![](/assets/snippet-about-incremental-loading-2024-11-18-1.63417e89e255d0e02570d0882a4929cde027422a934af21ba7541c5001c313a7.7499f82f.png)

MySQL、BigQuery、SQL Serverなどのデータベースインテグレーションでは、インクリメンタルデータをロードするために列またはフィールド名が必要です。

![](/assets/snippet-about-incremental-loading-2024-11-18.398c24903f2c97039ca73ab56fd98e5cd1158120244ca53bf37dce03cf0513bb.7499f82f.png)

## APIトークンの取得

1. [https://maac.cresclab.com/apitoken](https://maac.cresclab.com/apitoken)に移動します


![](/assets/image2021-10-18_15-11-57.5d1b503f0d2a3320ac74257493ea98c64c7597da818405ee2170f55e6b16d050.2e601cf1.png)

1. **Get token**を選択します


## Treasure コンソールを使用した接続の作成

### 新しい接続の作成

Treasure Dataでは、クエリを実行する前にデータ接続を作成および設定する必要があります。データ接続の一部として、インテグレーションにアクセスするための認証を提供します。

1. **Treasure コンソール**を開きます。
2. **Integrations Hub** > **Catalog**に移動します。
3. LINEvia Crescendoを検索して選択します。


![](/assets/image2021-10-18_14-9-32.2778d17c341cb0c79ef096e5435acb6c659aeccf77caf9fc0853068ce456c022.2e601cf1.png)

1. **Create Authentication**を選択します。
2. 認証するための認証情報を入力します。


![](/assets/image2021-10-18_14-10-21.a2eec66f259bd24db30b462980f5d5ec286ce03d8bff21e9c73fd64748a1a119.2e601cf1.png)

1. 接続の名前を入力します。
2. **Continue**を選択します。


## データをTreasure Dataに転送する

認証された接続を作成すると、自動的にAuthenticationsに移動します。

1. 作成した接続を検索します。
2. **New Source**を選択します。
3. Data Transferフィールドに**Source**の名前を入力します。


![](/assets/image2021-10-18_14-16-18.b65d2eeeaa72cdb4161ffc9326605f22c7da1d3411b0957388643a6560d04c83.2e601cf1.png)

1. **Next**を選択します。
Source Tableダイアログが開きます。


![](/assets/image2021-10-18_14-16-55.393b646e2a5246908554ad70c8af9f13b77600ba9ea990c6780c2505beb375ae.2e601cf1.png)

1. 以下のパラメータを編集します：


| パラメータ | 説明 |
|  --- | --- |
| **Data Objects** | インポートするデータオブジェクトタイプ：- Members - Segments |
| **Start Time**（Membersデータオブジェクト選択時にオプション表示） | UI設定の場合、サポートされているブラウザから日付と時刻を選択するか、ブラウザの日時の期待に合った日付を入力できます。例えば、Chromeではカレンダーから年、月、日、時間、分を選択できます。Safariでは2020-10-25T00:00のようなテキストを入力する必要があります。CLI設定の場合、RFC3339 UTC "Zulu"形式でナノ秒まで正確なタイムスタンプが必要です。例："2014-10-02T15:01:23Z"。 |
| **End Time**（Membersデータオブジェクト選択時にオプション表示） | UI設定の場合、サポートされているブラウザから日付と時刻を選択するか、ブラウザの日時の期待に合った日付を入力できます。例えば、Chromeではカレンダーから年、月、日、時間、分を選択できます。Safariでは2020-10-25T00:00のようなテキストを入力する必要があります。CLI設定の場合、RFC3339 UTC "Zulu"形式でナノ秒まで正確なタイムスタンプが必要です。例："2014-10-02T15:01:23Z"。 |
| **Incremental** | 前回の実行から新しいデータのみをインポートします。インクリメンタルローディングについてを参照してください。 |


1. **Next**を選択します。
Data Settingsページは必要に応じて変更できますが、スキップすることもできます。
2. **Next**を選択します。


### Data Preview

インポートを実行する前に、Generate Preview を選択してデータの[プレビュー](/products/customer-data-platform/integration-hub/batch/import/previewing-your-source-data)を表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。

1. **Next** を選択します。Data Preview ページが開きます。
2. データをプレビューする場合は、**Generate Preview** を選択します。
3. データを確認します。


### Data Placement

データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。

1. **Next** を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。
2. **Database** を選択 > **Select an existing** または **Create New Database** を選択します。
3. オプションで、database 名を入力します。
4. **Table** を選択 > **Select an existing** または **Create New Table** を選択します。
5. オプションで、table 名を入力します。
6. データをインポートする方法を選択します。
  - **Append** (デフォルト) - データインポートの結果は table に追加されます。
table が存在しない場合は作成されます。
  - **Always Replace** - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。
  - **Replace on New Data** - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。
7. **Timestamp-based Partition Key** 列を選択します。
デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。
8. データストレージの **Timezone** を選択します。
9. **Schedule** の下で、このクエリを実行するタイミングと頻度を選択できます。


#### 一度だけ実行

1. **Off** を選択します。
2. **Scheduling Timezone** を選択します。
3. **Create & Run Now** を選択します。


#### 定期的に繰り返す

1. **On** を選択します。
2. **Schedule** を選択します。UI では、*@hourly*、*@daily*、*@monthly*、またはカスタム *cron* の 4 つのオプションが提供されます。
3. **Delay Transfer** を選択して、実行時間の遅延を追加することもできます。
4. **Scheduling Timezone** を選択します。
5. **Create & Run Now** を選択します。


転送が実行された後、**Data Workbench** > **Databases** で転送の結果を確認できます。

## コマンドラインの使用

必要に応じて、Treasure コンソールの代わりにCLIからデータコネクタを作成できます。

## 前提条件のインストール

Ruby gemを使用して最新のtdツールをインストールします：


```bash
gem install td
td --version
```

他のインストール方法もあります。詳細については、[Treasure Data Toolbelt](https://toolbelt.treasuredata.com/)を参照してください。

## 設定ファイル（config.yml）の作成

### 例（config.yml）

以下は、YouTubeチャンネルのすべての動画の日次基本統計をリクエストするための設定ファイルの例です。


```yaml
in:
  type: line_via_crescendo
  api_token: dummy_token
  data_object: members
  incremental: true
  start_time: 2021-01-01T07:16:00.000Z
  end_time: 2021-07-15T07:16:00.000Z

out:
  mode: append
```