Snowflakeへの接続
この記事では、Snowflakeウェブインターフェースを使用してTealiumデータをSnowflakeにロードする方法について説明します。
この記事は、SnowflakeウェブインターフェースとData Loadウィザードに焦点を当て、Snowflakeコマンドラインツールの概要を提供します。Snowflakeの詳細な使用方法については、Snowflake Documentationを参照してください。
仕組み
Tealium DataAccessの顧客は、Snowflakeウェブインターフェースを使用して、データを外部ソリューションに接続し、高度なクエリとデータ分析を行うことができます。ウェブインターフェースは直感的なウィザードを提供し、少量のデータをフラットファイルの小さなセットからテーブルにロードすることができます。これを行うために、ウィザードはPUTとCOPYコマンドを使用してデータをロードし、ステージングファイルとデータロードフェーズを一つの操作に組み合わせることでデータロードプロセスを簡素化します。
ウェブインターフェースは、小さな数のファイル(最大50MB)をロードするためのものです。この制限は、ハードウェア、ブラウザタイプ、ブラウザバージョンによってブラウザのパフォーマンスが異なるため、最適なパフォーマンスを確保します。
前提条件
Tealiumが発行したAmazon S3バケットからDataAccessデータを接続するためには、以下の項目が必要です:
- AudienceStoreとEventStoreが有効化されたTealium DataAccess
データがDataAccessバケットに配信されるように、AudienceStream内でAudienceStoreコネクタを構成する必要があります。AudienceStream構成に関する詳細情報は、TealiumのAudienceStore Setup Guideを参照してください。 - EventStoreおよび/またはAudienceStoreの有効なTealium DataAccess資格情報。
はじめに
以下のセクションでは、Snowflake Data Loadウェブインターフェースを使用してソースファイルを選択し、TealiumデータをSnowflakeにロードするために必要な手順を説明します。
DataAccessデータをバリアントデータタイプのテーブルにロードすることをお勧めします。これは、スキーマ要件を強制せずにJSONファイルの半構造化された性質に対応します。データがロードされた後のデータの解析に関する追加情報とヒントについては、このドキュメントのベストプラクティスセクションを参照してください。
データロードウィザードを開く
以下の手順でSnowflake Data Loadウィザードを開きます:
-
Snowflakeアカウントにログインします。
-
Databases > Tablesをクリックします。
-
次のいずれかを行います:
- テーブル行をクリックして選択し、Load Dataボタンをクリックします。
- テーブル名をクリックしてテーブル詳細ページを開き、Load Tableボタンをクリックします。
-
Load Dataウィザードが表示されます。
-
次のセクションに進み、DataAccessからソースファイルを選択します。これにより、選択したテーブルにデータをロードすることができます。
DataAccessからソースファイルを選択する
ソースファイルを選択するように求められたとき、AWS S3に存在するTealium DataAccessデータの新しいステージを作成します。
以下の手順でTealium DataAccessからソースファイルを選択します:
DataAccessの資格情報を入力する
以下の手順でDataAccessの資格情報を入力します:
-
まだ行っていない場合は、EventStoreまたはAudienceStoreのDataAccess資格情報を取得します。
資格情報はEventStoreとAudienceStoreの両方で同じです。資格情報がすでに生成されている場合、Secret Access Keyは表示されません。既存のキーを取得するか、新しいキーを再生成する必要があるかどうかを同僚と協力して判断してください。
-
有効な資格情報を取得したら、以下のフィールドに入力します:
- Access Key
Tealiumから提供されたAccess Key IDを入力します。例:AKIA****************
- Secret Key
Tealiumから提供されたSecret Access Keyを入力します。 - Bucket
Tealiumのパスフィールドの最初の値のみを入力します。例:
Tealium Pathが:/dataaccess-us-east-1.tealiumiq.com/myaccount/main
の場合
入力する:dataaccess-us-east-1.tealiumiq.com
(スラッシュなし)。 - Prefix
Tealiumのパスフィールドの残りの部分を入力します。アカウント名から始まり、トレーリングスラッシュ(/)で終わります。
例:myaccount/main/
- Region
バケット名に示されているリージョンを選択します。例:us-east-1。
- Access Key
-
次のセクションに進み、ファイル形式を作成します。
ファイル形式を作成する
以下の手順でファイル形式を作成します:
-
ドロップダウンリストの隣にあるプラス(+)記号をクリックします。
Create File Formatダイアログが表示されます。
-
以下の情報を入力します:
- Nameフィールドに、DataAccessデータに使用するファイル形式の名前を入力します。例:
TEALIUM_JSON
。
これは必須フィールドです。 - ドロップダウンリストからSchema Nameタイプを選択します。例:Public。
- ドロップダウンリストからFormat Typeを選択します。例:JSON。
- ドロップダウンリストからCompression Methodを選択します。例:Gzip。
- 以下のチェックボックスの一つ以上を選択します:
- Enable Octal
- Allow Duplicate
- Strip Outer Array
- Strip Null Values
- Ignore UTF-8 Errors
- Commentフィールドに、このファイル形式についての説明的なコメントを入力します。
例:TealiumはJSONデータをGzip圧縮ファイルに保存します。
- Nameフィールドに、DataAccessデータに使用するファイル形式の名前を入力します。例:
-
Finishをクリックします。
-
次のセクションに進み、データをロードします。
データをロードする
以下の手順で、ウェブインターフェースを使用して手動でデータをロードし続けます。以下の手順を読み続けます。コマンドラインからデータをロードすることもできます。この方法を選択した場合は、Load Using Command Lineセクションにスキップします。
倉庫が現在稼働していない場合、倉庫の再開には最大5分かかることがあります。これには、ロードに必要な時間が含まれます。
コマンドラインを使用してロードする(オプション)
以下の手順でコマンドラインからデータをロードします:
-
SnowSQLをインストールする
コマンドラインからデータをロードする前に、マシンにSnowSQLをインストールする必要があります。SnowSQLのインストールについて詳しく学びます。 -
Snow SQLを構成する
SnowSQLのインストールが完了したら、Snowflakeインスタンスに接続するために資格情報で構成ファイルを編集する必要があります。- 以下のディレクトリにある構成ファイルを開きます:
- Linux/Mac OSの場合:
~/.snowsql/
- Windowsの場合:
%USERPROFILE%\.snowsql\
- Linux/Mac OSの場合:
- connectionsセクションを編集して資格情報を入力します。
例:[connections.tealium_example] #Can be used in SnowSql as connect tealium_example accountname = MY_ACCOUNT_NAME username = MYUSER password = ********************
- optionsまたはvariablesセクションを好みに応じて変更します。詳細はこちら:Configuring SnowSQL。
- 以下のディレクトリにある構成ファイルを開きます:
-
SnowSQLを通じて接続する
接続詳細が構成ファイルに保存されたら、シェルコマンドを使用してSnowSQLに接続します。tealium_example
を接続名に置き換えます:
$ snowsql -c tealium_example
詳細については、SnowSQLを通じた接続をご覧ください。 -
COPY INTOコマンドを使用してデータをロードする
接続したら、COPY INTO <table>
コマンドを実行して、データをターゲットテーブルにロードします。次の例では、前の手順で作成された名前付きステージmy_dataaccess_stage
からファイルのデータをロードします。
追加のパスを使用すると、イベントのサブディレクトリにあるファイルのみがロードされます:COPY INTO mytable FROM ‘@my_dataaccess_stage/events/’ FILE_FORMAT ‘TEALIUM_JSON’;
ベストプラクティス
このセクションでは、データがロードされた後のデータ解析についてのベストプラクティスについての有用な情報を提供します。
EventStoreデータの解析
EventStoreはフラット化されたJSONファイル形式でフォーマットされています。このドキュメントで説明されているデータロードの手順に従っていれば、EventStoreデータは現在、バリアント型の列に構造化されているはずです。データをクエリのためのより使いやすい構造にフォーマットするためには、JSONを解析する必要があります。
次のサンプルクエリは、すべてのデフォルトのEventStore属性列をデータベースビューの専用列に定義します:
CREATE OR REPLACE VIEW TEALIUM_STD_EVENTS AS
SELECT
JSON:"visitorid"::string as visitorid
, JSON:"eventid"::string as eventid
, JSON:"useragent"::string as useragent
, JSON:"device_type"::string as device_type
, JSON:"eventtime"::number as eventtime
, JSON:"dom_domain"::string as dom_domain
, JSON:"dom_pathname"::string as dom_pathname
, JSON:"dom_query_string"::string as dom_query_string
, JSON:"dom_title"::string as dom_title
, JSON:"dom_url"::string as dom_url
, JSON:"dom_viewport_height"::number as dom_viewport_height
, JSON:"dom_viewport_width"::number as dom_viewport_width
, JSON:"pageurl_domain"::string as pageurl_domain
, JSON:"pageurl_full_url"::string as pageurl_full_url
, JSON:"pageurl_path"::string as pageurl_path
, JSON:"pageurl_querystring"::string as pageurl_querystring
, JSON:"pageurl_scheme"::string as pageurl_scheme
, JSON:"referrerurl_domain"::string as referrerurl_domain
, JSON:"referrerurl_full_url"::string as referrerurl_full_url
, JSON:"referrerurl_path"::string as referrerurl_path
, JSON:"referrerurl_querystring"::string as referrerurl_querystring
, JSON:"referrerurl_scheme"::string as referrerurl_scheme
, JSON:"udo_ut_account"::string as udo_ut_account
, JSON:"udo_ut_domain"::string as udo_ut_domain
, JSON:"udo_ut_env"::string as udo_ut_env
, JSON:"udo_ut_event"::string as udo_ut_event
, JSON:"udo_ut_profile"::string as udo_ut_profile
, JSON:"udo_ut_version"::string as udo_ut_version
, JSON:"firstpartycookies_utag_main__pn"::number as cookie_utag_main__page_number
, JSON:"firstpartycookies_utag_main__sn"::number as cookie_utag_main__session_number
, JSON:"firstpartycookies_utag_main__ss"::number as cookie_utag_main__session_start_flag
, JSON:"firstpartycookies_utag_main__st"::number as cookie_utag_main__sessoin_timeout
, JSON:"firstpartycookies_utag_main_ses_id"::number as cookie_utag_main__session_id
, JSON:"udo_timing_pathname"::string as timing_pathname
, JSON:"udo_timing_dns"::number as timing_dns
, JSON:"udo_timing_load"::number as timing_load
, JSON:"udo_timing_connect"::number as timing_connect
, JSON:"udo_timing_response"::number as timing_response
, JSON:"udo_timing_dom_interactive_to_complete"::number as timing_dom_interactive_to_complete
, JSON:"udo_timing_front_end"::number as timing_front_end
, JSON:"udo_timing_dom_loading_to_interactive"::number as timing_dom_loading_to_interactive
, JSON:"udo_timing_query_string"::string as timing_query_string
, JSON:"udo_timing_domain"::string as timing_domain
, JSON:"udo_timing_fetch_to_interactive":: as timing_fetch_to_interactive
, JSON:"udo_timing_timestamp"::number as timing_timestamp
, JSON:"udo_timing_fetch_to_complete"::number as timing_fetch_to_complete
, JSON:"udo_timing_fetch_to_response"::number as timing_fetch_to_response
, JSON:"udo_timing_time_to_first_byte"::number as timing_time_to_first_byte
FROM EVENTSTORE_SAMPLE;
これらのフィールドについての詳細な情報は、EventStore Data Guideをご覧ください。
AudienceStoreデータの解析
AudienceStoreデータにはいくつかのバリエーションがあり、それぞれがコネクタアクションの構成に依存しています。前の構成手順で、Snowflakeステージのファイル形式をJSONとして定義しました。
次のサンプルクエリを使用して、すべてのデフォルトの訪問バッジ、日付、文字列、数値、ブール値を含むビューを作成することができます。
CREATE OR REPLACE VIEW TEALIUM_STD_VISITORS AS
SELECT
JSON:_id::string as "visitor_id"
, JSON:metrics."Average visit duration in minutes"::number as "avg_visit_duration"
, JSON:metrics."Average visits per week"::number as "avg_visits_per_week"
, JSON:metrics."Lifetime event count"::number as "ltm_event_count"
, JSON:metrics."Lifetime visit count"::number as "ltm_visit_count"
, JSON:metrics."Total direct visits"::number as "total_direct_visits"
, JSON:metrics."Total referred visits"::number as "total_referred_visits"
, JSON:metrics."Total time spent on site in minutes"::number as "total_time_onsite"
, JSON:metrics."Weeks since first visit"::number as "weeks_since_first_visit"
, JSON:dates."First visit"::number as "first_visit_date"
, JSON:dates."Last visit"::number as "last_visit_date"
, JSON:properties."Last event url"::string as "last_event_url"
, JSON:properties."Lifetime browser types used (favorite)"::string as "ltm_browser_types_used_fav"
, JSON:properties."Lifetime browser versions used (favorite)"::string as "ltm_browser_versions_used_fav"
, JSON:properties."Lifetime devices used (favorite)"::string as "ltm_devices_used_fav"
, JSON:properties."Lifetime operating systems used (favorite)"::string as "ltm_os_used_fav"
, JSON:properties."Lifetime platforms used (favorite)"::string as "ltm_platforms_used_fav"
, JSON:badges."Fan"::boolean as "fan_badge"
, JSON:badges."Frequent visitor"::boolean as "frequent_visitor_badge"
, JSON:badges."Unbadged"::boolean as "unbadged"
, ."Returning visitor"::boolean as "returning_visitor_flag"
FROM AUDIENCESTORE_SAMPLE;
訪問プロファイルオブジェクトのより高度な解析については、Snowflake Semi-structured Dataのドキュメンテーションをご覧ください。
関連トピック
以下のリソースで追加の情報をご覧いただけます:
最終更新日 :: 2025年January月31日