このページでは

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

Google Cloud Storage(GCS)

AmplitudeのGCSインポート機能を使用すると、GCSバケットからイベントやユーザープロパティをAmplitudeプロジェクトにインポートできます。 この記事は、Amplitude内でこのデータソースを設定する方法を説明します。

はじめに

前提条件

作業を開始する前に、いくつかの前提条件を満たしていることを確認してください。

  • 適切な権限を持つGCSサービスアカウントを持っていることを確認してください。詳細はこちら。
  • データを受け取るためにAmplitudeプロジェクトが存在することを確認してください。 そうでない場合は、新しいプロジェクトを作成してください。
  • 自分がAmplitudeプロジェクトの管理者またはマネージャであることを確認してください。
  • GCS バケットにデータファイルを取り込む準備ができていることを確認してください。これらは、コンバータファイルで説明したマッピングに準拠している必要があります。
  • GCS バケット内のデータが、Amplitude の HTTP API v2 仕様に記載されている形式に従っていることを確認してください。

ファイル要件

Amplitudeに送信したいファイルは、いくつかの基本的な要件に従っている必要があります:

  • ファイルにはイベントが含まれています。イベントは 1 行につき 1 つです。
  • ファイルはイベントの時系列順にアップロードされます。
  • ファイル名は一意です。
  • ファイルサイズは1MBを超え、5GB未満である必要があります。大規模なイベントを処理するお客様の場合、Amplitudeは最適なパフォーマンスを得るために500MB近くのファイルサイズを推奨しています。
  • ファイルは、圧縮または非圧縮の JSON、CSV、または Parquet ファイルです。

GCS サービスアカウントを作成し、権限を設定する

まだ作成していない場合は、Google Cloud コンソール内でAmplitudeのサービスアカウントを作成してください。 これにより、AmplitudeはデータをGoogle Cloudプロジェクトにエクスポートできます。

サービスアカウントを作成したら、サービスアカウントキーファイルを生成してダウンロードし、Amplitudeにアップロードしてください。 AmplitudeのアカウントキーをJSON形式でエクスポートしてください。

このサービスアカウントを、データをエクスポートしたいバケットのメンバーとして追加してください。 このメンバーにストレージ管理者の役割を必ず付与して、Amplitudeがデータをバケットにエクスポートするために必要な権限を持つようにしてください。

必要に応じて、独自のロールを作成することもできます。

エクスポート処理には、少なくとも以下の権限が必要であることに注意してください。

  • storage.buckets.get。
  • storage.objects.get。
  • storage.objects.create。
  • storage.objects.delete。
  • storage.objects.list。

新しいGCSソースを追加

Amplitudeがデータを取得するための新しいGCSデータソースを追加するには、以下の手順に従ってください:

  1. Amplitudeデータで、[カタログ] をクリックし、[ソース] タブを選択します。
  2. [ウェアハウスソース] セクションで、**[GCS] **をクリックします。
  3. サービスアカウントキーファイルをアップロードします。 これにより、AmplitudeはGCSバケットからデータをプルする権限を得ることができます。
  4. サービスアカウントキーファイルをアップロードしたら、バケット名とデータが保存されているフォルダを入力します。
  5. Next をクリックして、認証情報をテストします。 すべての情報に問題がなければ、Amplitudeは成功メッセージを表示します。次へ > をクリックして処理を続行します。
  6. 「データソースを有効にする」パネルで、データソースに名前を付け、それに説明を付けます。この情報は、後で設定から編集できます。 次に、「ソースを保存」をクリックします。 Amplitudeは、あなたがソースを作成して有効化したことを確認します。
  7. [完了]をクリックして、データソースのリストに戻ります。 コンバータをすでに設定済みの場合、データのインポートは数分後に開始されます。 それ以外の場合は、データコンバータを作成する必要があります。

コンバータ設定を作成する

AmplitudeのGCS取り込みソースを設定する最後のステップは、コンバータファイルを作成することです。 コンバータの設定により、連携に次の情報が提供されます。

  • 有効なデータファイルがどのようなものかをAmplitudeに伝えるパターンです。 たとえば、"\w+_\d{4}-\d{2}-\d{2}.json.gz" です。
  • ファイルが圧縮されているかどうか、圧縮されている場合はどのように圧縮されているか。
  • ファイルのフォーマットです。 たとえば、CSV(特定の区切り文字付き)やJSONオブジェクトの行などです。
  • ファイルからAmplitudeイベントへの各行のマップ方法。

コンバータファイルは、取り込まれたファイルをどのように処理するかをAmplitudeに伝えます。 これを作成するには2つのステップが必要です。まず、ファイルの圧縮タイプ、ファイル名、およびエスケープ文字を設定します。 次に、JSONを使用してコンバータが従うルールを記述します。

ガイド付きコンバータ作成

Amplitudeの新しいガイド付きコンバータ作成インターフェイスを使用してコンバータを作成できます。 これによりフィールドを視覚的にマッピングおよび変換できるようになり、JSON 設定ファイルを手動で作成する必要がなくなります。 内部的には、UIはAmplitudeで使用されている既存のJSON設定言語にコンパイルされます。

まず、インポートできるさまざまなデータタイプ(イベントデータ、ユーザープロパティデータ、グループプロパティデータ)について確認します。

Amplitudeでは、データコンバーターのステップ1でプレビューを選択することをお勧めします。プレビューでは、次のステップに進む前にサンプルソースレコードが表示されます。

特定のフィールドを選択した後、データベース内のフィールドを変換することを選択できます。 これを行うには、「変換」をクリックし、適用したい変換の種類を選択します。 各変換の簡単な説明をご覧いただけます。

フィールドを選択すると、変換モードを開き、さまざまな変換の中から選択できます。

選択する変換によっては、より多くのフィールドを含める必要がある場合があります。

変換に必要なすべてのフィールドが整ったら、それを保存できます。要件が変わった場合は、これらの情報を更新できます。

Amplitudeはデータを取り込むために特定のフィールドを必要としますが、「マッピングを追加」ボタンをクリックすることで追加できるフィールドもサポートしています。 ここでは、Amplitudeはイベントプロパティ、ユーザープロパティ、グループプロパティ、および追加プロパティの4種類のマッピングをサポートしています。

イベント用にサポートされているフィールドの一覧は、HTTP V2 API のドキュメントを参照してください。ユーザープロパティ用にサポートされているフィールドの一覧は、Identify API のドキュメントを参照してください。 これらのリストに含まれていない列は、event_properties または user_properties のいずれかに追加してください。そうしないと、Amplitude はそれらを無視します。

Amplitudeに持ち込みたいすべてのフィールドを追加した後、この設定のサンプルをデータプレビューセクションで確認できます。 データプレビューは、フィールドやプロパティを追加または削除すると自動的に更新されます。 データプレビューでは、ソースレコードに基づくいくつかのサンプルレコードと、Amplitudeがそのデータをどのようにインポートするかを見ることができます。 これにより、必要なすべてのデータポイントを確実にAmplitudeに取り込むことができます。 10種類の異なるサンプルソースレコードと、それに対応するAmplitudeイベントを確認できます。

コンバータ言語は、JSON 要素に与えられた値を抽出することを記述しています。 これを指定するには、SOURCE_DESCRIPTION を使用します。この値には次のものが含まれます。

  • BASIC_PATH。
  • リスト演算子。
  • JSON_OBJECT。

コンバータの例

詳細なヘルプについては、コンバータ設定リファレンスを参照してください。

Amplitudeでコンバータを設定する

  1. [Edit Import Config]をクリックして、ファイルの圧縮タイプ、ファイル名、およびエスケープ文字を設定します。コンバータファイルのボイラープレートは、この手順で行った選択に基づいて事前に入力されます。また、[Pull File]をクリックすることで、設定が機能するかどうかをテストすることもできます。
  2. [次へ] をクリックします。
  3. テキストエディタでコンバータ規則を入力します。
  4. コンバージョンをテストしてください。 テスト変換 をクリックします。コンバージョンプレビューを確認します。 必要に応じてコンバータの設定を調整してください。
  5. 完了 をクリックします。
新しいフィールドを追加したり、ソースデータ形式を変更したりする場合は、コンバータ設定を更新する必要があります。 更新されたコンバータは、discovered_after_converter更新が保存された
ファイルにのみ適用されることに注意してください。

プレビュー中に誤解を招く「ファイル形式が正しくありません」エラーが発生

コンバータでプレビュー中にエラーが発生した場合、必ずしも元のGCSファイルが誤ってフォーマットされていることを意味するわけではありません。Amplitudeはまず、GCSから内部S3にファイルをコピーします。 プレビューボタンはGCSに直接ではなく、S3内のファイルを反映します。ファイルが必要なフォルダ構造と一致しない場合、AmplitudeはそれらをAmplitude S3にコピーしません。その結果、何もインポートされず、プレビューに表示されません。

ストレージ組織の要件

最初の取り込み後、データ組織はその後のインポートについてこの標準に準拠する必要があります。

{bucket name}/{GCSPrefix}/{YYYY}/{MM}/{DD}/{HH}/{optional}/{additional}/ {folder}/{structure}/{file name}

場所:

  • {bucket name} は GCS バケットの名前です。
  • {GCSPrefix} は、ソースセットアップ設定で指定されたソース プレフィックス フォルダです。
  • {YYYY}/{MM}/{DD}/{HH} は、新しいファイルをアップロードするために必要な日付プレフィックス形式です。システムがファイルを生成した時刻ではなく、バケットにアップロードした時刻に基づいてファイルを整理してください。 また、月、日、および時間を表すには、常に2桁(1桁ではなく)を使用する必要があります。
  • {optional}/{additional}/{folder}/{structure} は、フォルダ構造の詳細を追加できる場所です。 これらの詳細は完全に任意です。これらを含める場合、ファイルパスの例は {bucket name}/{GCSPrefix}/{YYYY}/{MM}/{DD}/{HH}/**cluster-01/node-25**/{file name} のようになります。

これらの組織要件は、ソースを有効にした後にインポートする新しいデータにのみ適用されます。既存のファイルを再編成する必要はありません。AmplitudeのGCSインポートは、最初の取り込みスキャン時にファイルに含まれるデータをキャプチャするためです。 初期スキャン後にバケットにアップロードされる新しいデータは、ここに記載されている要件に準拠している必要があります。

ファイル検索の時間枠(48時間)

Amplitude GCS インポートジョブは、パス内のフォルダーの日付に基づいて過去48時間以内のファイルのみを検索します。

例:バッチジョブが 2024/09/03 00:00 に開始された場合、検索対象は次のとおりです。

plaintext
{bucket name}/{GCSPrefix}/2024/09/01/00/
  to  
{bucket name}/{GCSPrefix}/2024/09/03/00/

データファイルがこの2日間の期間内に該当するフォルダにアップロードされていることを確認してください。そうすれば、Amplitudeサービスがそれらを検出してインポートできます。

これは役に立ちましたか?