Snowflakeへの接続
この記事では、Snowflakeのウェブインターフェースを使用してTealiumデータをSnowflakeにロードする方法について説明します。
この記事では、Snowflakeのウェブインターフェースとデータロードウィザードに焦点を当て、Snowflakeコマンドラインツールの概要を提供します。Snowflakeの詳細な使用方法については、Snowflakeドキュメントを参照してください。
動作原理
Tealium DataAccessのお客様は、Snowflakeのウェブインターフェースを使用してデータを外部ソリューションに接続し、高度なクエリとデータ分析を行うことができます。ウェブインターフェースには直感的なウィザードが用意されており、少量のデータをテーブルにロードするために使用できます。このため、ウィザードはPUTおよびCOPYコマンドを使用してデータをロードし、ステージングファイルを組み合わせてデータロードプロセスを単一の操作に簡略化します。
ウェブインターフェースは、小規模なファイル(最大50 MB)をロードするために使用されます。この制限により、ブラウザのパフォーマンスがハードウェア、ブラウザの種類、およびブラウザのバージョンによって異なることを考慮して、最適なパフォーマンスが確保されます。
前提条件
Tealium-発行のAmazon S3バケットからDataAccessデータに接続するには、次のアイテムが必要です。
- AudienceStoreおよびEventStoreが有効なTealium DataAccess
データをDataAccessバケットに配信するために、AudienceStream内のAudienceStoreコネクタを構成する必要があります。AudienceStreamの構成に関する詳細な情報については、TealiumのAudienceStoreセットアップガイドを参照してください。 - EventStoreおよび/またはAudienceStoreの有効なTealium DataAccessの資格情報。
はじめに
以下のセクションでは、Snowflakeデータロードウェブインターフェースを使用してソースファイルを選択し、TealiumデータをSnowflakeにロードするための手順を説明します。
DataAccessデータを、スキーマの要件を強制しないJSONファイルの半構造化な性質に対応するバリアントデータ型のテーブルにロードすることをお勧めします。データのロード後にデータを解析するための追加情報やヒントについては、このドキュメントのベストプラクティスセクションを参照してください。
データロードウィザードを開く
次の手順でSnowflakeデータロードウィザードを開きます。
-
Snowflakeアカウントにログインします。
-
Databases > Tablesをクリックします。
-
次のいずれかを行います。
- テーブル行をクリックして選択し、Load Dataボタンをクリックします。
- テーブル名をクリックしてテーブル詳細ページを開き、Load Tableボタンをクリックします。
-
データロードウィザードが表示されます。
-
次のセクションに進んで、選択したテーブルにデータをロードするためのソースファイルを選択します。
Tealium DataAccessからソースファイルを選択する
ソースファイルを選択するように求められた場合、AWS S3に存在するTealium DataAccessデータのために新しいステージを作成します。
次の手順でTealium DataAccessからソースファイルを選択します。
- 既存のAmazon S3の場所を選択します。
- 次へをクリックします。
- 次のセクションに進んで、DataAccessの資格情報を入力します。
DataAccessの資格情報を入力する
次の手順でDataAccessの資格情報を入力します。
-
まだ行っていない場合は、EventStoreまたはAudienceStoreのDataAccessの資格情報を取得します。
資格情報はEventStoreとAudienceStoreの両方で同じです。資格情報が既に生成されている場合、シークレットアクセスキーは表示されません。既存のキーを取得するか、新しいキーを再生成する必要があるかどうかを同僚と協力して確認してください。
-
有効な資格情報を取得したら、次のフィールドに入力します。
- Access Key
Tealiumから提供されたアクセスキーIDを入力します。例:AKIA****************
- Secret Key
Tealiumから提供されたシークレットアクセスキーを入力します。 - Bucket
Tealiumのパスフィールドの最初の値のみを入力します。例:
もしTealiumのパスが/dataaccess-us-east-1.tealiumiq.com/myaccount/main
である場合、dataaccess-us-east-1.tealiumiq.com
と入力します(スラッシュなし)。 - Prefix
Tealiumのパスフィールドの残りの部分を入力します。アカウント名から始まり、末尾にスラッシュ(/)が付いている部分です。
例:myaccount/main/
- Region
バケット名に示されているリージョンを選択します。例: us-east-1。
- Access Key
-
次のセクションに進んでファイル形式を作成します。
ファイル形式を作成する
次の手順でファイル形式を作成します。
-
ドロップダウンリストの横にあるプラス(+)記号をクリックします。
ファイル形式の作成ダイアログが表示されます。
-
次の情報を入力します。
- 名前フィールドに、DataAccessデータで使用するファイル形式の名前を入力します。例:
TEALIUM_JSON
。
これは必須フィールドです。 - ドロップダウンリストからスキーマ名タイプを選択します。例: Public。
- ドロップダウンリストからフォーマットタイプを選択します。例: JSON。
- ドロップダウンリストから圧縮方法を選択します。例: Gzip。
- 次のチェックボックスのいずれかまたは複数を選択します。
- Enable Octal
- Allow Duplicate
- Strip Outer Array
- Strip Null Values
- Ignore UTF-8 Errors
- コメントフィールドに、このファイル形式に関する説明的なコメントを入力します。
例: TealiumはJSONデータをGzip圧縮されたファイルに保存します。
- 名前フィールドに、DataAccessデータで使用するファイル形式の名前を入力します。例:
-
Finishをクリックします。
-
次のセクションに進んでデータをロードします。
データをロードする
次の手順でウェブインターフェースを使用してデータを手動でロードし続けるか、以下の手順を読み進めます。コマンドラインからデータをロードすることもできます。この方法を選択した場合は、コマンドラインを使用してデータをロードするセクションにスキップしてください。
- ドロップダウンリストから以前に名前を付けたファイル形式を選択します。
- Loadをクリックしてデータをすぐにロードするか、Nextをクリックして追加のロードオプションを構成します。
ウェアハウスが現在実行されていない場合、ウェアハウスの再開には最大5分かかる場合があります。ロードに必要な時間に加えて、5分の時間がかかることに注意してください。
コマンドラインを使用してデータをロードする(オプション)
次の手順でコマンドラインからデータをロードします。
-
SnowSQLをインストールする
コマンドラインからデータをロードする前に、マシンにSnowSQLをインストールする必要があります。SnowSQLのインストールについて詳しくはこちらを参照してください。 -
SnowSQLを構成する
SnowSQLのインストールが完了したら、構成ファイルを編集して資格情報を入力し、Snowflakeインスタンスに接続できるようにする必要があります。- 次のディレクトリにある構成ファイルを開きます。
- Linux/Mac OSの場合:
~/.snowsql/
- Windowsの場合:
%USERPROFILE%\.snowsql\
- Linux/Mac OSの場合:
- ファイルを編集し、接続セクションを変更して資格情報を入力します。
例:[connections.tealium_example] #Can be used in SnowSql as connect tealium_example accountname = MY_ACCOUNT_NAME username = MYUSER password = ********************
- オプションまたは変数セクションを必要に応じて変更します。詳細については、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データガイドを参照してください。
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半構造化データのドキュメントを参照してください。
関連トピック
追加情報については、次のリソースを参照してください。
最終更新日 :: 2024年March月29日