データ同期スキーマの定義

最終更新日:

Pendoデータ同期を使用すると、Pendoデータをデータレイクやデータウェアハウスに送信し、他のデータソースと組み合わせて、AIワークフロー、機械学習モデル、ビジネスインテリジェンスダッシュボードに組み込むことができます。詳細については、「Pendoのデータ同期機能の概要」をご参照ください。

この記事では、イベントデータやアカウント、訪問者のメタデータを含む、データ同期エクスポートで使用されるスキーマについて説明します。サポートされているエクスポート方法は次の2つです。

  • クラウドストレージにエクスポート。データは、イベント、訪問者、アカウント用の3つの個別のAvroファイルで提供されます。
  • Snowflakeに同期。データは構造化されたテーブルで提供されます。標準のウェアハウステーブルスキーマの詳細については、「Snowflake ERDへのPendoデータ同期機能」をご覧ください。ERDにアクセスするには、パスワード「datasync」を入力する必要があります。

イベントデータの場合、基になるデータはどちらの形式でも同じです。アカウントおよび訪問者のメタデータについては、エクスポート方法によって構造が異なります。本記事のスキーマ表にフォーマットの違いが記載されています。

すべての日付とタイムスタンプは協定世界時(UTC)です。詳細については、 「データ同期のエクスポート処理」「タイムスタンプとタイムゾーン」 をご参照ください。

イベント

データ同期には、ページ、フィーチャー、トラックイベントなどのタグ付きイベントを含む、Pendoがキャプチャしたすべてのイベントが含まれます。これらは、エクスポート方法に応じて、統合されたファイルとイベント固有のファイルまたはテーブルの組み合わせで提供されます。

  • すべてのイベントは包括的なエクスポートファイルまたはテーブルに含まれます。

  • タグ付きイベント(ページ、フィーチャー、トラックイベント)は、別々のイベント固有のエクスポートにも表示されます。

  • ガイドイベントはすべてのイベントエクスポートに含まれます。

以下の表は、これらのイベントタイプがAvroファイルおよびSnowflakeテーブルにどのように対応しているかを示しています。

イベントタイプ Avroファイル ウェアハウステーブル
すべてのイベント allevents.avro ALLEVENTS
ページイベント matchedEvents/Page/{pageId}.avro MATCHEDPAGEEVENTS
フィーチャーイベント matchedEvents/Feature/{featureId}.avro MATCHEDFEATUREEVENTS
トラックイベント matchedEvents/TrackType/{trackId}.avro MATCHEDTRACKTYPEEVENTS

以下のスキーマ定義は、ALLEVENTSMATCHEDPAGEEVENTSMATCHEDFEATUREEVENTSMATCHEDTRACKTYPEEVENTSの4つのイベントテーブルすべてに適用されます。matchableIdlastUpdatedAtALLEVENTSではなく、マッチしたイベントテーブルにのみ表示されます。これらの例外は、該当するフィールドの説明に記載されています。

フィールド名 Avroタイプ Snowflakeのタイプ 説明
matchableId 文字列 STRING NOT NULL

このイベントに一致するルールを持つページ、フィーチャー、またはトラックイベントのID。すべてのイベントデータには存在しません。

Feature/{ID}

Page/{ID}

TrackType/{ID}

ID には、大文字(A~Z)、小文字(a~z)、数字(0~9)、ハイフン(-)、アンダースコア(_)が含まれます。最大文字数は500字です。

periodId DATE NUMBER(38,0) NOT NULL データウェアハウスへの読み込みを支援する便利なフィールドで、特定のイベントのbrowserTimestampの日付部分に相当します。日付はすべてUTCです。フォーマットはYYYY-MM-DDです。
visitorId 文字列 STRING NOT NULL

イベントを実行した訪問者。最大文字数は500文字です。

訪問者および訪問者メタデータに結合できます。

Pendoのインストール時に顧客が設定した訪問者ID。

accountId 文字列 STRING NOT NULL

訪問者に関連付けられているアカウント。最大文字数は500字です。

アカウントおよびアカウントメタデータに結合できます。アカウント情報が利用できない場合は、空の文字列が使用されます。

Pendoインストール時に顧客が設定したアカウントID。

analyticsSessionId 文字列 文字列 このイベントが記録されたときにアクティブだったウェブアナリティクスセッションの一意の識別子。セッションは、ブラウザで以前のセッションがアクティブでないときに開始され、30分間の非アクティブ状態が続くと終了します。ウェブアナリティクスのセッションはCookieまたはローカルストレージを使用して追跡され、同じドメイン内のブラウザタブ全体で保持されます。16桁の英数字文字列。
browserTimestamp LONG NUMBER(38,0) イベントのタイムスタンプ。use_avro_logical_typesフラグで日付としてデータウェアハウスに読み込むことができます。
country 文字列 文字列 remoteIpに関連付けられた国。ISO 3166-1 alpha-2の国コードを使用します。このフィールドは空白でもかまいません。
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。
destinationStepId 文字列 文字列 フローを示すガイドの宛先ステップのIDを指定するguideAdvancedイベントに関連します。前のステップIDまたは次のステップIDにできます。singleEventsおよびguideEventsソースに表示されます。最大文字数は500字です。
elementPath 文字列 文字列 ウェブイベント用。空白か、イベントに関連するDOM要素を指定するCSSスタイルの文字列。モバイルの場合、イベントに関連するウィジェットのJSON形式の説明。最大文字数は60,000文字です。
eventClass 文字列 文字列 イベントはuiまたはtrackいずれかに分類できます。
eventId 文字列 文字列

データ同期におけるeventIdは、Pendoによって作成されたイベントの複数のフィールドをハッシュ化して生成したイベントの生データの識別子です。eventIdは、すべてのイベントデータにおいて信頼できる一意の識別子ではありません。その理由は2つあります。

  1. eventIdの一意性は特定の1時間内でのみ維持されます。
  2. ページやフィーチャーには重複するタグルールが存在する可能性があり、1つのeventIdが複数回表示されることがあります。

eventId+matchableId+browserTimestampを組み合わせることで、Pendoデータ同期のデータに対して一意のキーを作成することができます。

eventIdは64文字の16進文字列 (a–f,0–9) で、訪問者ID、イベントタイプ、URL、要素パス、元のブラウザのタイムスタンプ、タブID、デバイスID、ガイドID、または投票とアンケート調査タイトル(該当する場合)のハッシュとして作成されます。

eventSource 文字列 文字列 次のいずれかになります。web:Webページから発生したイベントの場合。mobile:モバイルアプリから発生したイベントの場合。email:メールから発生したイベントの場合。この値には小文字(a~z)のみが含まれ、最大長は9字です。
eventType 文字列 文字列 イベントのタイプ。次のような例が挙げられます。change:訪問者がアプリ内の要素を変更しました。click:訪問者がアプリ内の要素をクリックしました。focus:訪問者がアプリ内の要素にフォーカスしました。group:Twilioセグメントのインテグレーションによる「グループ」呼び出しに応答するイベント。guideActivity:訪問者がPendoガイドを使用しました。guideDismissed:訪問者がPendoガイドを閉じたことを示します。guideSeen:訪問者がPendoガイドを閲覧しました。identify:アプリが訪問者やアカウントのアイデンティティを特定しました。load:ページがロードされたことを示します。meta:アプリが訪問者やアカウントのメタデータを送信しました。pollResponse:訪問者がPendoの投票とアンケート調査を送信しました。trackトラックイベントが送信されました。モバイルイベントには、AppButtonClickedAppScreenViewedAppSessionStartAppSessionEndなどがあります。
guideId 文字列 文字列 ガイド関連イベントや投票調査関連イベントを生成するガイドの一意の識別子。このフィールドは空白でもかまいません。最大文字数は500字です。
guideSeenReason 文字列 文字列 guideSeenイベントタイプの場合、ガイドがユーザーに表示された理由。
guideSeenTimeoutMS LONG NUMBER(38,0) guideTimeoutイベントの場合、guideTimeoutイベントの送信前に、特定のガイドステップが表示されるまでエージェントが待機した時間。
guideSessionId 文字列 文字列 ガイドや同時に読み込まれたその他納品物のリストの識別子。このIDは、クライアントからガイドがリクエストされるたびに変更され、読み込み中に発生するイベントは同じIDを持ちます。最大文字数は500字です。
guideSnoozeDurationMS LONG NUMBER(38,0) guideSnoozedイベントタイプの場合、ガイドのスヌーズ時間(ミリ秒単位)。
guideStepId 文字列 文字列 ガイド関連イベントや投票調査関連イベントを生成するガイドステップの一意の識別子。このフィールドは空白でもかまいません。最大文字数は500字です。
language 文字列 文字列 guideSeenイベントタイプの場合、表示されているガイドの言語。このフィールドは空白でもかまいません。https://datatracker.ietf.org/doc/html/bcp47 言語タグ(例: en-US)を使用します。
latitude 小数 小数 イベントのremoteIpの緯度。PendoがremoteIpを収集していない場合、このフィールドは空白です。
lastUpdatedAt JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。一致したイベントが最後に転送に含まれた時点を示すエポックタイムスタンプ。このフィールドは、遡及処理中を含め、一致するイベントが転送に含まれるたびに更新されます。このフィールドを使用して、新しいデータと古いデータを区別します。
longitude 小数 小数 イベントのremoteIpの経度。PendoがremoteIpを収集していない場合、このフィールドは空白です。
loadDurationMS LONG NUMBER(38,0) loadイベントの場合、ウェブページのレンダリングにかかった時間(ミリ秒単位)。ページの動的部分の読み込みにかかる時間は含まれません。
oldVisitorId 文字列 文字列 Pendoが認証を通じて識別する前に、訪問者に割り当てられた匿名の訪問者 ID。
pollId 文字列 文字列 pollResponseイベントを生成した投票とアンケート調査の識別子。最大文字数は500字です。この識別子に関連する投票とアンケート調査オブジェクトは、allguides.avroファイル内のpollsリストにあり、具体的にはこのイベントのguideIdという識別子を持つガイドにあります。
pollResponse 文字列 文字列 pollResponseイベントを生成した投票調査に対するJSON形式の回答。eventTypepollResponseでない限り、空になります。投票調査でのみ利用可能なデータへのインデックスにできます。投票とアンケート調査で定義されたカスタムレスポンスのセットに対応するレスポンスの場合、pollResponseの値は、allguides.avroファイル内のレスポンスマップのインデックスです。このマップは、識別子guideId(このイベントのもの)を持つガイドと、識別子pollId(このイベントのもの)を持つ投票とアンケート調査のpollsリストにあります。最大文字数は5,000文字です。
pollType 文字列 文字列 pollResponseイベントを生成した投票調査のタイプ。NumberScalePositiveNegativeFreeFormPickListのいずれかです。
propertiesJson 文字列 文字列 イベントのすべてのユーザー定義イベントプロパティのJSON形式のマップ。
region 文字列 文字列 イベントのremoteIpに関連する米国地域。このフィールドは空白でもかまいません。州を表す2文字のコードとして提示されます。
remoteIp 文字列 文字列 イベントを生成したremoteIp。このデータを収集しない場合、代わりに0.0.0.0が保存されます。ipv6アドレスにすることもできます。一部のプロキシとモバイルネットワークでは、有用なIPアドレスは収集されません。
server 文字列 文字列 イベントのURLのサーバー名部分。このフィールドは空白でもかまいません。値はURLセーフ文字列(https://datatracker.ietf.org/doc/html/rfc3986 に準拠)であり、最大60,000字まで使用できます。
uiElementActions 文字列 文字列 エージェントによってguideActivityイベントが送信されるガイドとのインタラクションに関連付けられた要素アクション(openLinkguideSnoozedなど)。これは、singleEventsおよびguideEventsのソースに表示されます。値はURLセーフ(Base64 スタイル)でエンコードされ (https://datatracker.ietf.org/doc/html/rfc4648 に準拠)、最大60,000字まで使用できます。
uiElementId 文字列 文字列 ガイド内のUI要素がクリックされたときのガイド要素の一意の識別子。これにより、guideActivityイベントがエージェントに送信されます。これは、singleEventsguideEventsguideElementClick、およびguideElementClickEverのソースに表示されます。最大文字数は60,000字です。
uiElementText 文字列 文字列 エージェントがguideActivityイベントの一環としてフィールドを送信するときのガイド要素のテキスト。guideActivityイベントがガイド要素のテキストと共に送信されると、ui_element_textsingleEventsおよびguideEventsのソースに表示されます。ui_element_textフィールドなしでguideActivityイベントが送信された場合でも、処理は実行されます。サブスクリプションによりすべてのテキストの除外を選択した場合、イベントが同時に送信されたとしても、ui_element_textは保存されません。最大文字数は60,000字です。
uiElementType 文字列 文字列 guideActivityイベントの送信時にクリックされた要素のタイプ。これは、singleEventsおよびguideEventsのソースに表示されます。これは任意の有効なHTML要素タグ(例:button)で、最大60,000字まで指定できます。
url 文字列 文字列 ウェブイベントを生成したページの正規化されたURL。モバイルイベントの場合、URLは画面構造をJSON形式で表したものになります。
userAgent 文字列 文字列 ウェブイベントを受信した際のHTTPSリクエストのユーザーエージェント文字列。モバイルイベントの場合、これはイベントを生成したデバイスタイプのテキスト表現です。userAgent値はすべてのイベントに含まれ、集計とセグメント化に使用されます。Pendoは、サードパーティのユーザーエージェント解析ライブラリの独自のコピーを使用して、ブラウザ、OS、デバイスタイプなどの詳細を抽出します。入力された文字列がライブラリ内の既知のパターンと一致しない場合、「Unknown」として記録されます。

ページ、フィーチャー、トラックイベント、ガイドの定義

ページ、フィーチャー、トラックイベントの定義は、それぞれ独自のファイルまたはテーブルに含まれており、matchableIdを使用してイベントデータに結合できます。

次の表は、エクスポート方法に応じて各定義が表示される場所を示しています。

ビジネスオブジェクト Avroファイル ウェアハウステーブル
ページ allpages.avro ページ
フィーチャー allfeatures.avro フィーチャー
トラックイベント alltracktypes.avro TRACKTYPES
ガイド allguides.avro ガイド

ページ

フィールド名 Avroタイプ Snowflakeのタイプ 説明
pageId 文字列 STRING NOT NULL ページの識別子。最大文字数は500字です。
kind 文字列 文字列 オブジェクトの種類の説明。常にPageになります。
name 文字列 文字列 ページに付けられた名前。最大文字数は1500字です。
lastUpdatedAt LONG NUMBER(38,0) ページが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
isCoreEvent ブール値 ブール値 イベントがPendo Coreイベントかどうか。
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。
rulesUpdatedAt JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。ページのルールが更新された時点を示すエポックタイムスタンプ。
softDeleteMethod JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。どのソフト削除方法が適用されるかを示します(1 = オリジナル、2 = 新しいタイムスタンプの比較)。
rulesJson 文字列 文字列 このフィールドはPendoクラシック(レガシー)デザイナーのみが使用し、ほとんどのページでは空になることが予想されます。UTF-8形式のJSON文字列です。

フィーチャー

フィールド名 Avroタイプ Snowflakeのタイプ 説明
featureId 文字列 STRING NOT NULL フィーチャーの識別子(サブスクリプションごとに一意)。最大文字数は500字です。
kind 文字列 文字列 オブジェクトの種類の説明。常にFeatureになります。
name 文字列 文字列 フィーチャーに付けられた名前。
lastUpdatedAt LONG NUMBER(38,0) フィーチャーが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
isCoreEvent ブール値 ブール値 イベントがPendo Coreイベントかどうか。
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。
rulesUpdatedAt JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。フィーチャーのルールが更新された時点のエポックタイムスタンプ。
softDeleteMethod JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。どのソフト削除方法が適用されるかを示します(1 = オリジナル、2 = 新しいタイムスタンプの比較)。

トラックイベント

フィールド名 Avroタイプ Snowflakeのタイプ 説明
trackTypeId 文字列 STRING NOT NULL トラックイベントの識別子(サブスクリプションごとに一意)。最大文字数は500字です。
kind 文字列 文字列 オブジェクトの種類の説明。常にTrackTypeになります。
name 文字列 文字列 トラックイベントに付けられた名前。
trackTypeName 文字列 文字列 トラックイベントの表示名。
lastUpdatedAt LONG NUMBER(38,0) トラックイベントが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
isCoreEvent ブール値 ブール値 イベントがPendo Coreイベントかどうか。
trackTypeRules 文字列 配列 トラックイベントを定義するために使用されるルールのリスト。
eventPropertyNames 文字列 配列 含まれているトラックイベントプロパティの名前。
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。
rulesUpdatedAt JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。トラックイベントのルールが更新された時点のタイムスタンプ。この値はトラックイベントが作成されたときに設定され、その後は更新されません。
softDeleteMethod JPNデータセンターではFeedback機能は提供していません。 NUMBER(38,0) Snowflakeのみ。どのソフト削除方法が適用されるかを示します(1 = オリジナル、2 = 新しいタイムスタンプの比較)。

ガイド

フィールド名 Avroタイプ Snowflakeのタイプ 説明
guideId 文字列 文字列 ガイドの識別子(サブスクリプションごとに一意)。最大文字数は500字です。
kind 文字列 文字列 オブジェクトの種類の説明。常にGuideになります。
lastUpdatedAt LONG NUMBER(38,0) ガイドが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
createdAt LONG NUMBER(38,0) ガイドが作成されたときのエポックタイムスタンプ(ミリ秒単位)。
state 文字列 文字列 ガイドの可視性の状態(draftstagedpublicdisabled)。
name 文字列 文字列 ガイドに付けられた名前。
emailState 文字列 文字列 NPSのメールバックアップの状態(無効の場合はdraft、有効の場合はpublic)。
launchMethod 文字列 文字列 ハイフンで区切られた、ガイドに適用される起動方法のセット。
isMultiStep ブール値 ブール値 ガイドに複数のステップがあるかどうか。
isTraining ブール値 ブール値 ガイドが「Adopt for Partners」のエンドユーザーアプリケーションに属するかどうか。
recurrence LONG NUMBER(38,0) NPSガイドの反復期間(ミリ秒単位)。
recurrenceEligibilityWindow LONG NUMBER(38,0) 均等配信が有効になっている場合に、個々の訪問者がNPSガイドの対象となる時間(ミリ秒単位)。
attributeJson 文字列 文字列 ガイドのタイプ、バッジの説明、ガイドが有効になるデバイスのタイプ、最後にガイドを編集したビジュアルデザインスタジオ(Visual Design Studio)のバージョンなどを含む、ガイド属性のJSON表現。
audience 文字列 文字列 ガイドがターゲットとする訪問者を定義するロジック。
audienceUiHint 文字列 文字列 ガイドに適用されたセグメントを人間が判読できる形式で表したもの。
resetAt LONG NUMBER(38,0) ガイドが最後にリセットされたときのタイムスタンプ。
publishedAt LONG NUMBER(38,0) ガイドが最後に公開されたときのタイムスタンプ。
steps レコード 配列

次の値を含むガイドステップ:

  • guideStepId(STRING)
  • name(STRING)
  • pageId(STRING)
  • appReplayUrl(STRING)
  • elements(STRING)
  • pollIds(STRING値のARRAY)
アンケート調査 レコード 配列

次の値を含む投票とアンケート調査の質問:

  • pollId(STRING)
  • question(STRING)
  • numericResponses(INT値のARRAY)
  • idResponses (STRING値のMAP)
  • resetAt(LONG、ミリ秒単位のエポックタイムスタンプ)
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。

アカウントと訪問者

アカウントと訪問者の定義は、エクスポート方法に応じて、メインオブジェクトテーブルと補足メタデータファイルまたはテーブルの両方に表示されます。以下の表は、各タイプのデータが表示される場所を示しています。

データ型 Avroファイル ウェアハウステーブル
アカウント accounts.avro アカウント
アカウントメタデータ accountmetadata.avro ACCOUNTMETADATA
訪問者 visitors.avro 訪問者
訪問者メタデータ visitormetadata.avro VISITORMETADATA

アカウント

フィールド名 Avroタイプ Snowflakeのタイプ 説明
id 文字列 STRING NOT NULL アカウントの一意の識別子。最大文字数は500字です。
auto.id 文字列 STRING NOT NULL idと同じ一意の識別子。Snowflakeエクスポートのスキーマ正規化のために含まれます。最大文字数は500字です。
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。
firstvisitMS LONG NUMBER(38,0) アカウントに対してイベントが最初にキャプチャされた時刻のタイムスタンプ(ミリ秒単位)。
idhash 整数 NUMBER(38,0) アカウントIDのハッシュ。
lastvisitMS LONG NUMBER(38,0) アカウントに対してイベントが最後にキャプチャされた時刻のタイムスタンプ(ミリ秒単位)。
lastupdatedMS LONG NUMBER(38,0) アカウントが最後に更新された時刻のタイムスタンプ(ミリ秒単位)。
VARIANT VARIANT このメタデータフィールドに関連付けられた値。形式とタイプは、メタデータスキーマ内のフィールドの定義によって異なります。
<fieldname>_<APP_ID> 場合により異なる 場合により異なる 複数アプリケーションのサブスクリプションの場合、Pendoは<fieldname>_<APP_ID>の値を、アプリケーションによって異なる可能性のある上記のフィールドに対して送信します。これが可能なメタデータフィールドには、メタデータスキーマファイルでisPerApptrueに設定されています(以下を参照)。
agent_<fieldname> 場合により異なる 場合により異なる すべてのエージェントメタデータフィールドに対して、アカウントのavroファイルにagent_<fieldname>という名前のフィールドが作成されます。Pendoメタデータのフィールドタイプとavroタイプのマッピングについては、以下をご覧ください。
<metadata_group> 文字列 文字列 エージェント以外のメタデータグループに対しては、そのメタデータグループとすべてのフィールドのJSON表現を送信します。メタデータスキーマファイルには、メタデータグループの各フィールドの名前、タイプ、その他の情報が含まれます。
incompleteFields STRINGのリスト 配列 メタデータスキーマで指定されたタイプと互換性のない値を持つメタデータフィールドのリスト。

訪問者

フィールド名 Avroタイプ Snowflakeのタイプ 説明
id 文字列 STRING NOT NULL 訪問者の一意の識別子。最大文字数は500字です。
accountids 配列 配列 訪問者に割り当てられた一意のアカウントID(STRING値)のリスト。各アカウントの最大文字数制限は500字です。
accountId 文字列 文字列 訪問者が最後に関連付けられたアカウントID。最大文字数は500字です。
deletedAt LONG DATE オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。
firstvisitMS LONG NUMBER(38,0) イベントが訪問者に対して最初にキャプチャされたときのタイムスタンプ(ミリ秒単位)
idhash 整数 NUMBER(38,0) 訪問者IDのハッシュ。
lastbrowsername 文字列 文字列 最後に使用したブラウザ名。この値には大文字(A~Z)または小文字(a~z)のみが含まれ、最大長は13字です。
lastbrowserversion 文字列 文字列 最後に使用したブラウザのバージョン。最大文字数は5,000字です。
lastoperatingsystem 文字列 文字列 最後に使用したオペレーティングシステム。最大文字数は5,000字です。
lastservername 文字列 文字列 最後に使用したサーバー名。最大文字数は60,000字です。
lastvisitMS LONG NUMBER(38,0) 訪問者に対してイベントが最後に記録された時刻のタイムスタンプ(ミリ秒単位)。
lastupdatedMS LONG NUMBER(38,0) 訪問者が最後に更新された時刻のタイムスタンプ(ミリ秒単位)。
lastuseragent 文字列 文字列 最後に使用したユーザーエージェント(未解析)。最大文字数は512字です。
lastvisitorid 文字列 文字列 最新の訪問者ID。最大文字数は500字です。
identifiedvisitoratMS LONG NUMBER(38,0) Pendoアイデンティティマッピングによって匿名の訪問者IDと識別済みの訪問者IDが統合された際に、訪問者が特定された時刻のタイムスタンプ(ミリ秒単位)が表示されるフィールドです。
identifiedvisitorid 文字列 文字列 PendoのIDマッピングによって匿名訪問者IDが識別済みの訪問者と統合された場合、このフィールドは識別済みの訪問者IDで更新されます。識別された訪問者 ID を利用することで、ユーザージャーニーを一元的に把握できます。最大文字数は500文字です。
VARIANT VARIANT このメタデータフィールドに関連付けられた値。形式とタイプは、メタデータスキーマ内のフィールドの定義によって異なります。
<fieldname>_<APP_ID> 場合により異なる 場合により異なる 複数アプリケーションのサブスクリプションの場合、Pendoは<fieldname>_<APP_ID>の値を、アプリケーションによって異なる可能性のある上記のフィールドに対して送信します。これが可能なメタデータフィールドには、メタデータスキーマファイルでisPerApptrueに設定されています(以下を参照)。
agent_<fieldname> 場合により異なる 場合により異なる すべてのエージェントメタデータフィールドに対して、訪問者のavroファイルにagent_<fieldname>というフィールドが作成されます。Pendoメタデータのフィールドタイプとavroタイプのマッピングについては、以下をご覧ください。
<metadata_group> 文字列 文字列 エージェント以外のメタデータグループに対しては、そのメタデータグループとすべてのフィールドのJSON表現を送信します。メタデータスキーマファイルには、メタデータグループの各フィールドの名前、タイプ、その他の情報が含まれます。
incompleteFields STRINGのリスト 配列 メタデータスキーマで指定されたタイプと互換性のない値を持つメタデータフィールドのリスト。

メタデータ

アカウントと訪問者のメタデータは、エクスポート方法によって表現が異なります。

クラウドストレージ

各エクスポートでは、2種類のファイルが生成されます。

  • エンティティファイルaccounts.avroおよびvisitors.avro)。各エンティティにつき1行。メタデータ値は動的列として埋め込まれています。エージェントのメタデータグループフィールドは agent_<fieldname>として表示され、他のグループ(例えばカスタムやSalesforce)はグループ名を冠した単一のJSONエンコードされた文字列列として表示されます。

  • メタデータスキーマファイルaccountmetadata.avroおよびvisitormetadata.avro)。各メタデータフィールド定義につき1行。これらのファイルはエンティティIDやエンティティごとの値を含みません。avroFieldNameフィールドを使ってエンティティファイルの列名をメタデータ定義にマッピングします。

Snowflake

データ同期は、一般的なクラウドストレージメタデータスキーマファイルとは異なるSnowflake固有の内部ファイル形式を生成します。このフォーマットはlong形式(正規化済み)です。エンティティIDとエンティティごとの値の両方を含む、エンティティとメタデータフィールドごとに1行ずつあります。

ACCOUNTMETADATAVISITORMETADATAテーブルは、このSnowflakeフォーマットに基づいて構築されています。これらは、クラウドストレージのaccountmetadata.avroファイルとvisitormetadata.avroファイルの直接のコピーではありません。

注:SnowflakeストアドプロシージャACCOUNTMETADATA_LOAD_AND_MERGEおよびVISITORMETADATA_LOAD_AND_MERGEは、AccountIDおよびVisitorIDを参照していますが、これはaccountmetadata.avrovisitormetadata.avroからではなく、このSnowflake固有のロングフォーマットファイルからロードするためです。

サンプルレコード:クラウドストレージとSnowflakeの比較

以下のサンプルレコードは、2つのエクスポート方法の構造的な違いを示しています。

クラウドストレージのレコード例accountmetadata.avroまたはvisitormetadata.avro )。これはスキーマ定義のみであり、エンティティIDも値も含まれていません。

グループ name avroFieldName displayName type isDeleted isPerApp
カスタム role agent_role 役割 string 誤り 誤り

SnowflakeレコードのサンプルVISITORMETADATA)。エンティティIDとエンティティごとの値を含み、訪問者とメタデータフィールドの組み合わせごとに1行となります。

visitorID metadataGroup name displayName type isDeleted isPerApp
visitor_abc カスタム role 役割 string 誤り 誤り "admin"

メタデータスキーマフィールド

以下の表は、メタデータスキーマのフィールドについて説明しています。特定のエクスポート方法に固有の項目は、「クラウドストレージのみ」または「Snowflakeのみ」としてマークされます。

クラウドストレージのメタデータスキーマファイル(accountmetadata.avrovisitormetadata.avro)には、フィールド定義のみが含まれており、エンティティIDやエンティティごとの値は含まれていません。avroFieldName列は、各フィールド定義をaccounts.avroまたはvisitors.avroの対応する列にリンクします。その代わりに、SnowflakeのACCOUNTMETADATAテーブルとVISITORMETADATAテーブルには、エンティティIDと値が直接含まれます。

フィールド名 Avroタイプ Snowflakeのタイプ 説明
accountIdまたはvisitorId JPNデータセンターではFeedback機能は提供していません。 STRING NOT NULL エンティティ識別子。Snowflakeのみ。accountmetadata.avroまたはvisitormetadata.avroには存在しません。
avroFieldName 文字列 JPNデータセンターではFeedback機能は提供していません。 クラウドストレージのみ。Avroエンティティファイル(accounts.avroまたはvisitors.avro)内のフィールド名。このフィールドを使ってメタデータ定義をエンティティファイルの対応する列にマッピングします。最大文字数は5,002文字です。このフィールドは、SnowflakeのACCOUNTMETADATAテーブルまたはVISITORMETADATAテーブルには存在しません。
name 文字列 STRING NOT NULL Pendoのメタデータフィールド名。最大文字数は5000字です。
グループ 文字列 文字列 Pendoのメタデータフィールドのグループ名。最大文字数は5,000文字です。Snowflakeテーブルでは、このフィールドはmetadataGroupという名前です。
displayName 文字列 文字列 Pendoのメタデータフィールドの表示名。最大文字数は5000字です。
type 文字列 文字列 フィールドのデータ型。stringintfloatbooleantimelistなどをオプションとして選択できます。
elementType 文字列 文字列 typelistの場合、各要素のデータ型。該当しない場合は空白になります。この値には小文字(a-z)のみが含まれ、最大長は7文字です。
elementformat 文字列 文字列 メタデータフィールドのデータ形式。例えば、typetimeの場合、elementFormatmillisecondsなどになります。該当しない場合は空白になります。最大文字数は40字です。
isDeleted ブール値 BOOLEAN NOT NULL DEFAULT FALSE フィールドが削除済みの場合はtrue。
isPerApp ブール値 BOOLEAN NOT NULL DEFAULT FALSE フィールドが各アプリケーションに存在できる場合はtrue(複数アプリケーションのサブスクリプションのみ可能です)。
JPNデータセンターではFeedback機能は提供していません。 VARIANT エンティティごとのメタデータ値。Snowflakeのみ。クラウドストレージの場合、エンティティごとの値はaccounts.avroまたはvisitors.avroの動的列として保存されます。(エージェントグループのフィールドはagent_<fieldname>の形式、その他のグループはグループ名を冠したJSONエンコードされた文字列列の形式)。

AvroエクスポートからSnowflakeメタデータテーブルを再現する

クラウドストレージのエクスポートを使用し、SnowflakeのVISITORMETADATAテーブルやACCOUNTMETADATAテーブルに相当するものを構築したい場合は、以下の手順でAvroファイルから再構築することができます。

  1. visitors.avroまたはaccounts.avroを読み込みます。各ファイルはエンティティごとに1行ずつあり、メタデータ値は動的列として使われます。
  2. visitormetadata.avroまたはaccountmetadata.avroをロードします。各ファイルはメタデータフィールド定義ごとに1行ずつ構成されます。
  3. ステップ1の動的列を次の構造を持つ行にピボット解除します:(visitorId/accountId, group, name, value)
    • agent_<fieldname>列は、フィールド名<fieldname>agentメタデータグループにマッピングされます。
    • <group>JSON文字列列では、JSONを解析して個々のフィールド名と値を抽出する必要があります。
  4. ステップ3の結果をステップ2のavroFieldNameに結合し、各行にdisplayNametypeelementTypeelementFormatisDeletedisPerAppを追加します。
  5. 結果は、SnowflakeのVISITORMETADATAまたはACCOUNTMETADATAテーブルの構造と一致します。

タイプマッピング

Pendoのフィールドタイプは、以下の方法でAvroおよびSnowflakeのデータタイプにマッピングできます。

Pendoフィールドタイプ Pendoデータマッピングのフィールドタイプ Avroタイプ Snowflakeのタイプ
string テキスト(string) 文字列 文字列
int 数値型(整数) 整数 NUMBER(38,0)
float 数値型(小数) 小数 小数
boolean ブール値(boolean) ブール値 ブール値
time 日付(time) LONG(ミリ秒の論理タイプ) NUMBER(38,0)
リスト リスト(list) 配列 配列
この記事は役に立ちましたか?
5人中3人がこの記事が役に立ったと言っています