Jupyter筆記本中的查詢服務

Adobe Experience Platform 可讓您在 Data Science Workspace 整合 Query Service into JupyterLab 作為標準功能。

本教學課程示範常見使用案例的SQL查詢範例,以供探索、轉換和分析 Adobe Analytics 資料。

快速入門

開始本教學課程之前,您必須具備下列必要條件:

存取 JupyterLab 和 Query Service

  1. Experience Platform,導覽至 筆記本 從左側導覽欄。 請讓JupyterLab載入一下。

    注意

    如果未自動顯示新的「啟動器」頁簽,請按一下以開啟新的「啟動器」頁簽 檔案 然後選取 新啟動器.

  2. 在「啟動器」標籤中,按一下 空白 表徵圖,以開啟空的筆記本。

    注意

    Python 3是目前筆記型電腦中唯一支援查詢服務的環境。

  3. 在左側選取邊欄上,按一下 資料 按兩下 資料集 目錄,列出所有資料集。

  4. 尋找 Adobe Analytics 要瀏覽的資料集,然後按一下右鍵清單,按一下 筆記本中的查詢資料 在空筆記本中生成SQL查詢。

  5. 按一下包含函式的第一個產生儲存格 qs_connect() 並按一下播放按鈕執行。 此函式將在筆記本實例和 Query Service.

  6. 複製 Adobe Analytics 來自第二個產生的SQL查詢的資料集名稱,將會是 FROM.

  7. 按一下 + 按鈕。

  8. 在新儲存格中複製、貼上並執行下列匯入陳述式。 這些陳述式將用於視覺化您的資料:

    import plotly.plotly as py
    import plotly.graph_objs as go
    from plotly.offline import iplot
    
  9. 接著,將下列變數複製並貼到新儲存格中。 視需要修改其值,然後執行它們。

    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 選取 重新啟動 按鈕 重新啟動按鈕 位於電源按鈕旁的右上角。

筆記本內核重置,但單元格將保持,重新運行所有單元格以繼續您離開的位置。

每小時訪客計數

下列查詢會傳回指定日期的每小時訪客計數:

查詢

%%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. 查詢結果將作為Pancits資料幀儲存在此變數中。 將結果儲存在資料幀中,可讓您稍後使用所需的視覺化查詢結果 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)

每小時活動計數

下列查詢會傳回指定日期的每小時動作計數:

查詢

%%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()

您可以修改上述查詢,以使用 其中 子句:

查詢

%%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;

按用戶活動列出的活動城市

以下查詢返回在指定日期生成大部分用戶活動的十個城市:

查詢

%%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 Notebooks分析資料 教學課程,以了解如何使用資料存取SDK執行類似操作。

本頁內容