Adobe Experience Platform では、構造化クエリ言語 (SQL) を Data Science Workspace 統合によって Query Service into JupyterLab を標準フィーチャとして使用します。
このチュートリアルでは、調査、変換、分析をおこなう一般的な使用例に対する SQL クエリの例を示します Adobe Analytics データ。
このチュートリアルを開始する前に、次の前提条件を満たす必要があります。
アクセス先 Adobe Experience Platform. の組織に対するアクセス権がない場合、 Experience Platform先に進む前に、システム管理者にお問い合わせください。
An Adobe Analytics データセット
このチュートリアルで使用する次の主要概念に対する十分な理解
In Experience Platformに移動します。 ノートブック をクリックします。 JupyterLab が読み込まれるまで、しばらく待ちます。
新しい「ランチャー」タブが自動的に表示されなかった場合は、新しい「ランチャー」タブを開き、 ファイル 次に、 新規ランチャー.
「ランチャー」タブで、Python 3 環境の「空白」アイコンをクリックして、空のノートブックを開きます。
現在、ノートブックのクエリサービスでサポートされている環境は Python 3 のみです。
左側の選択パネルで、データアイコンをクリックし、「データセット」ディレクトリをダブルクリックして、すべてのデータセットをリストします。
検索 Adobe Analytics 調査するデータセットを選択し、リストを右クリックして、 ノートブックでのデータのクエリ 空のノートブックで SQL クエリを生成する。
qs_connect()
関数が含まれる最初の生成済みセルをクリックし、再生ボタンをクリックして実行します。この関数は、ノートブックインスタンスと Query Service.
を Adobe Analytics 2 番目に生成された SQL クエリのデータセット名。 FROM
.
「+」ボタンをクリックして、ノートブックの新しいセルを挿入します。
次のインポートステートメントをコピーし、新しいセルに貼り付けて実行します。これらのステートメントは、データを視覚化するために使用されます。
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot
次に、以下の変数をコピーし、新しいセルに貼り付けます。必要に応じて値を変更してから、値を実行します。
target_table = "your Adobe Analytics dataset name"
target_year = "2019"
target_month = "04"
target_day = "01"
target_table
:の名前 Adobe Analytics データセット。target_year
:ターゲットデータの元の年。target_month
:ターゲットデータの元の月。target_day
:ターゲットデータの元の日。これらの値はいつでも変更できます。値を変更する場合は、変数セルを実行して、変更を適用する必要があります。
個々のノートブックセルに次の SQL クエリを入力します。クエリを実行するには、セルで「 」を選択し、次に「 」を選択します play 」ボタンをクリックします。 成功したクエリの結果またはエラーログは、実行されたセルの下に表示されます。
ノートブックが長期間非アクティブになった場合、ノートブックと Query Service 壊れるかもしれない その場合は、を再起動します。 JupyterLab 選択 再起動 ボタン は、電源ボタンの隣の右上隅にあります。
ノートブックのカーネルはリセットされますが、セルは保持され、すべてのセルを再実行して、中断した場所から続行します。
次のクエリは、指定した日付の 1 時間ごとの訪問者数を返します。
%%read_sql hourly_visitor -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(DISTINCT concat(enduserids._experience.aaid.id,
_experience.analytics.session.num)) AS Visit_Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY Day, Hour
ORDER BY Hour;
上記のクエリで、 WHERE
句が target_year
. 変数を中括弧({}
)で囲んで、SQL クエリに含めます。
オプションの変数 hourly_visitor
は、クエリの最初の行に含まれます。クエリの結果は、この変数に Pandas データフレームとして保存されます。結果をデータフレームに保存すると、後で目的の Python パッケージ。 以下を実行します。 Python 新しいセルのコードを使用して棒グラフを生成します。
trace = go.Bar(
x = hourly_visitor['Hour'],
y = hourly_visitor['Visit_Count'],
name = "Visitor Count"
)
layout = go.Layout(
title = 'Visit Count by Hour of Day',
width = 1200,
height = 600,
xaxis = dict(title = 'Hour of Day'),
yaxis = dict(title = 'Count')
)
fig = go.Figure(data = [trace], layout = layout)
iplot(fig)
次のクエリは、指定した日付の 1 時間ごとのアクション数を返します。
%%read_sql hourly_actions -d -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(concat(enduserids._experience.aaid.id,
_experience.analytics.session.num,
_experience.analytics.session.depth)) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY Day, Hour
ORDER BY Hour;
上記のクエリを実行すると、結果が hourly_actions
にデータフレームとして保存されます。新しいセルで次の関数を実行し、結果をプレビューします。
hourly_actions.head()
上記のクエリを変更し、WHERE 句で論理演算子を使用して、指定した日付範囲の 1 時間ごとのアクション数を返すことができます。
%%read_sql hourly_actions_date_range -d -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(concat(enduserids._experience.aaid.id,
_experience.analytics.session.num,
_experience.analytics.session.depth)) AS Count
FROM {target_table}
WHERE timestamp >= TO_TIMESTAMP('2019-06-01 00', 'YYYY-MM-DD HH')
AND timestamp <= TO_TIMESTAMP('2019-06-02 23', 'YYYY-MM-DD HH')
GROUP BY Day, Hour
ORDER BY Hour;
変更したクエリを実行すると、結果がに保存されます。 hourly_actions_date_range
をデータフレームとして使用します。 新しいセルで次の関数を実行し、結果をプレビューします。
hourly_actions_date_rage.head()
次のクエリは、指定した日付の訪問者セッションごとのイベント数を返します。
%%read_sql events_per_session -c QS_CONNECTION
SELECT concat(enduserids._experience.aaid.id,
'-#',
_experience.analytics.session.num) AS aaid_sess_key,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY aaid_sess_key
ORDER BY Count DESC;
以下を実行します。 Python 訪問セッションごとのイベント数のヒストグラムを生成するコード:
data = [go.Histogram(x = events_per_session['Count'])]
layout = go.Layout(
title = 'Histogram of Number of Events per Visit Session',
xaxis = dict(title = 'Number of Events'),
yaxis = dict(title = 'Count')
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)
次のクエリは、指定した日付の最も人気の高い 10 ページを返します。
%%read_sql popular_pages -c QS_CONNECTION
SELECT web.webpagedetails.name AS Page_Name,
Sum(web.webpagedetails.pageviews.value) AS Page_Views
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY web.webpagedetails.name
ORDER BY page_views DESC
LIMIT 10;
次のクエリは、指定した日付の最もアクティブな 10 人のユーザーを返します。
%%read_sql active_users -c QS_CONNECTION
SELECT enduserids._experience.aaid.id AS aaid,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY aaid
ORDER BY Count DESC
LIMIT 10;
次のクエリは、指定した日付のユーザーアクティビティの大部分を生成している 10 都市を返します。
%%read_sql active_cities -c QS_CONNECTION
SELECT concat(placeContext.geo.stateProvince, ' - ', placeContext.geo.city) AS state_city,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY state_city
ORDER BY Count DESC
LIMIT 10;
このチュートリアルでは、を使用する場合の使用例をいくつか示しました Query Service in Jupyter ノートブック。 「Jupyter ノートブックによるデータの分析」のチュートリアルに従って、Data Access SDK を使用して同様の操作がどのように実行されるかを確認します。