從 Analytics (分析) 匯出資料

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

為指派的服務代理設定權限

如要為指派的服務專員設定權限,以便因應上述變更,請按照下列步驟操作。

  1. 輸入下列指令,找出 Google Cloud 服務代理的名稱:
    curl -X GET \
      "https://api.enterprise.apigee.com/v1/organizations/ORG" \
      -u email:password \
      | jq -r '.properties.property[] | select(.name=="serviceAgent.analytics") | .value'

    其中 ORG 是您的機構。 這會傳回服務代理的名稱和值,如下所示:

    "property" : [
      {
       "name" : "serviceAgent.analytics",
       "value" : "service-9q1ibk@gcp-sa-apigee-uap.iam.gserviceaccount.com"
       },
  2. 在 Google Cloud 控制台中開啟 IAM 資訊主頁。
  3. 選取 Google Cloud 專案。
  4. 按一下「IAM」窗格頂端的「新增」
  5. 在「New principals」(新增主體) 欄位中,輸入步驟 1 中傳回的服務代理 value。舉例來說,步驟 1 中顯示的 valueservice-9q1ibk@gcp-sa-apigee-uap.iam.gserviceaccount.com
  6. 按一下「+ 新增其他角色」按鈕,然後新增下列角色:
    • BigQuery 使用者
    • 儲存空間管理員
  7. 按一下 [儲存]

Apigee Analytics 資料

Apigee Analytics 會收集及分析 API 傳輸的各種資料,並提供視覺化工具,包括互動式資訊主頁、自訂報表和其他工具,可找出 API Proxy 效能趨勢。現在,您可以將 Apigee Analytics 的分析資料匯出至自己的資料存放區 (例如 Google Cloud Storage 或 Google BigQuery),解鎖這些豐富的內容。接著,您就能運用 Google BigQuery 和 TensorFlow 提供的強大查詢和機器學習功能,自行進行資料分析。您也可以將匯出的 Analytics 資料與其他資料 (例如網頁記錄) 合併,進一步瞭解使用者、API 和應用程式。

匯出資料格式

將數據分析資料匯出為下列其中一種格式:

  • 逗號分隔值 (CSV)

    預設分隔符號為半形逗號 (,)。支援的分隔符號包括逗號 (,)、直立線 (|) 和 Tab 鍵 (\t)。使用 csvDelimiter 屬性設定值,詳情請參閱「匯出要求屬性參考資料」。

  • JSON (以換行符號分隔)

    允許使用換行字元做為分隔符號。

匯出的資料包括 Edge 內建的所有 Analytics 指標和維度,以及您新增的任何自訂 Analytics 資料。如要瞭解匯出資料的說明,請參閱「數據分析指標、維度和篩選器參考資料」。

您可以將數據分析資料匯出至下列資料存放區:

匯出程序總覽

以下步驟摘要說明匯出數據分析資料的程序:

  1. 設定資料存放區 (Cloud Storage 或 BigQuery),以便匯出資料。請務必確認資料存放區已正確設定,且用於將資料寫入資料存放區的服務帳戶具有正確權限。

  2. 建立資料儲存庫,定義要匯出資料的資料存放區 (Cloud Storage 或 BigQuery) 屬性,包括用來存取資料存放區的憑證。

    建立資料儲存庫時,請將資料儲存庫憑證上傳至 Edge 憑證保管箱,以安全地儲存憑證。資料匯出機制隨後會使用這些憑證,將資料寫入資料存放區。

  3. 使用資料匯出 API 啟動資料匯出程序。資料匯出作業會在背景非同步執行。

  4. 使用資料匯出 API 判斷匯出作業何時完成

  5. 匯出作業完成後,請前往資料存放區存取匯出的資料

以下各節將詳細說明這些步驟。

設定資料存放區

資料分析資料匯出機制會將資料寫入 Cloud Storage 或 BigQuery。如要執行寫入作業,您必須:

  • 建立 Google Cloud Platform 服務帳戶。
  • 設定服務帳戶的角色,讓服務帳戶可以存取 Cloud Storage 或 BigQuery。

為 Cloud Storage 或 BigQuery 建立服務帳戶

服務帳戶是一種 Google 帳戶,屬於應用程式,而非個別使用者。應用程式接著會使用服務帳戶存取服務。

服務帳戶具有以 JSON 字串表示的服務帳戶金鑰。建立 Edge 資料儲存庫 (定義與資料存放區的連線) 時,您會將這個金鑰傳遞給該儲存庫。資料匯出機制隨後會使用該金鑰存取資料存放區。

與金鑰相關聯的服務帳戶必須是 Google Cloud Platform 專案擁有者,且具備 Google Cloud Storage bucket 的寫入權限。如要建立服務金鑰並下載必要酬載,請參閱 Google Cloud Platform 說明文件中的「建立及管理服務帳戶金鑰」。

舉例來說,首次下載金鑰時,金鑰會格式化為 JSON 物件:

{ 
  "type": "service_account", 
  "project_id": "myProject", 
  "private_key_id": "12312312", 
  "private_key": "-----BEGIN PRIVATE KEY-----\n...", 
  "client_email": "client_email@developer.gserviceaccount.com", 
  "client_id": "879876769876", 
  "auth_uri": "https://accounts.google.com/organizations/oauth2/auth", 
  "token_uri": "https://oauth2.googleapis.com/token", 
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2", 
  "client_x509_cert_url": "https://www.googleapis.com" 
}

設定 Google Cloud Storage

將資料匯出至 Google Cloud Storage 前,請先完成下列步驟:

  • 確認 Google Cloud Platform 專案已啟用 BigQueryCloud Resource Manager API。如需操作說明,請參閱「啟用 API」。Apigee 會使用 BigQuery API,在匯出至 Cloud Storage 時運用 BigQuery 匯出功能,並使用 Cloud Resource Manager API 在每次匯出前檢查權限。
  • 請確認服務帳戶已指派下列角色:

    • BigQuery 工作使用者
    • Storage 物件建立者
    • 儲存空間管理員 (僅在測試資料儲存庫時需要,如「測試資料儲存庫設定」一文所述)。如果這個角色權限範圍過廣,您可以改為將「storage.buckets.get」權限新增至現有角色。

    或者,如要修改現有角色或建立自訂角色,請為角色新增下列權限:

    • bigquery.jobs.create
    • storage.objects.create
    • storage.buckets.get (僅在測試資料儲存庫時需要,詳情請參閱「測試資料儲存庫設定」)

設定 Google BigQuery

如要將資料匯出至 Google BigQuery,請先完成下列步驟:

  • 確認 Google Cloud Platform 專案已啟用 BigQueryCloud Resource Manager API。如需操作說明,請參閱「啟用 API」。Apigee 會在每次匯出前,使用 Cloud Resource Manager API 檢查權限。
  • 確認 Google Cloud Platform 專案已啟用 BigQuery API。如需操作說明,請參閱「啟用及停用 API」。
  • 確認服務帳戶已指派下列角色:

    • BigQuery 工作使用者
    • BigQuery 資料編輯者

    如要修改現有角色或建立自訂角色,請為角色新增下列權限:

    • bigquery.datasets.create
    • bigquery.datasets.get
    • bigquery.jobs.create
    • bigquery.tables.create
    • bigquery.tables.get
    • bigquery.tables.updateData

建立資料儲存庫

資料儲存庫會定義與匯出資料儲存庫 (Cloud Storage、BigQuery) 的連線,包括用於存取資料儲存庫的憑證。

關於 Edge 憑證保管庫

Edge 會使用憑證保管箱安全地儲存用於存取匯出資料存放區的憑證。如要讓服務存取 Edge 憑證保險庫中的憑證,您必須定義憑證消費者

使用 Edge UI 建立資料儲存庫時 (如下所述),Edge 會自動建立用於存取憑證的消費者。

測試資料儲存庫設定

建立資料儲存庫時,Edge 不會測試或驗證您的憑證和資料儲存庫設定是否有效。也就是說,您建立資料儲存庫後,要等到第一次匯出資料時,才會偵測到錯誤。

或者,您也可以先測試資料儲存庫設定,再建立資料儲存庫。測試很有用,因為大量資料匯出程序可能需要很長時間才能執行。在開始下載大量資料前,先測試憑證和資料儲存庫設定,即可快速修正設定問題。

如果測試成功,請建立資料儲存庫。如果測試失敗,請修正錯誤,然後重新測試設定。測試成功後,再建立資料儲存庫。

如要啟用測試功能,請按照下列步驟操作:

  • 確認 Google Cloud Platform 專案已啟用 Cloud Resource Manager API。如需操作說明,請參閱「啟用及停用 API」。

建立資料儲存庫

如要在 UI 中建立資料儲存庫,請按照下列步驟操作:

  1. 以機構管理員身分登入 https://apigee.com/edge,然後選取機構。

    NOTE:您必須是 Edge 組織管理員,才能建立資料儲存庫。

  2. 從左側導覽列選取「管理」>「Analytics 資料儲存庫」。系統隨即會顯示「Analytics Datastores」(Analytics 資料儲存區) 頁面。

  3. 選取「+ 新增資料儲存庫」按鈕。系統會提示您選取資料儲存庫類型:

  4. 選擇匯出資料目標類型:

    • Google Cloud Storage
    • Google BigQuery

    隨即會顯示設定頁面:

  5. 輸入資料儲存庫的名稱

  6. 選取用於存取資料存放區的憑證。畫面上會顯示可用憑證的下拉式清單。

    憑證會因資料存放區類型而異。詳情請參閱「為 Cloud Storage 或 BigQuery 建立服務帳戶」。

    • 如果已上傳憑證,請從下拉式清單中選取憑證。請務必選取適合資料存放區類型的憑證。

    • 如要為資料儲存庫新增憑證,請選取「新增」。在對話方塊中輸入:

      1. 憑證名稱
      2. 「憑證內容」是專屬於資料存放區的 JSON 服務帳戶金鑰,如「為 Cloud Storage 或 BigQuery 建立服務帳戶」一文所述。
      3. 選取 [Create] (建立)
  7. 輸入資料存放區類型專屬的屬性:

    • Google Cloud Storage
      屬性 說明 是否必要?
      專案 ID Google Cloud Platform 專案 ID。

      如要建立 Google Cloud Platform 專案,請參閱 Google Cloud Platform 說明文件中的「建立及管理專案」。

      Bucket Name 要將數據分析資料匯出至哪個 Cloud Storage bucket 的名稱。執行資料匯出作業前,bucket 必須已存在。

      如要建立 Cloud Storage bucket,請參閱 Google Cloud Platform 說明文件中的「建立 Storage bucket」。

      路徑 在 Cloud Storage bucket 中儲存 Analytics 資料的目錄。
    • BigQuery:
      屬性 說明 是否必要?
      專案 ID Google Cloud Platform 專案 ID。

      如要建立 Google Cloud Platform 專案,請參閱 Google Cloud Platform 說明文件中的「建立及管理專案」。

      資料集名稱 要匯出 Analytics 資料的 BigQuery 資料集名稱。請務必先建立資料集,再要求匯出資料。

      如要建立 BigQuery 資料集,請參閱 Google Cloud Platform 說明文件中的「建立及使用資料集」。

      資料表前置字串 在 BigQuery 資料集中為 Analytics 資料建立的資料表名稱前置字串。
  8. 選取「測試連線」,確保可使用憑證存取資料存放區。

    如果測試成功,請儲存資料儲存庫。

    如果測試失敗,請修正問題並重試。將滑鼠游標移到使用者介面中的錯誤訊息上方,即可在工具提示中查看額外資訊。

  9. 連線測試通過後,請儲存資料儲存庫。

修改資料儲存庫

如要修改資料儲存庫,請按照下列步驟操作:

  1. 以機構管理員身分登入 https://apigee.com/edge,然後選取機構。

  2. 從左側導覽列選取「管理」>「Analytics 資料儲存庫」。系統隨即會顯示「Analytics Datastores」(Analytics 資料儲存區) 頁面。

  3. 將滑鼠游標移至要修改的報表「已修改」欄上,畫面上會顯示「編輯」和「刪除」圖示。

  4. 編輯或刪除資料儲存庫。

  5. 如果編輯過資料儲存庫,請選取「測試連線」,確認憑證可用於存取資料儲存庫。

    如果測試成功,您可以在資料存放區中查看範例資料。

    如果測試失敗,請修正問題並重試。

  6. 連線測試通過後,請更新資料儲存庫。

匯出數據分析資料

如要匯出數據分析資料,請對 /analytics/exports API 發出 POST 要求。在要求主體中傳遞下列資訊:

  • 匯出要求的名稱和說明
  • 匯出資料的日期範圍 (值只能涵蓋一天)
  • 匯出資料的格式
  • 資料儲存庫名稱
  • 機構是否已啟用營利功能

以下提供匯出要求範例。如需要求主體屬性的完整說明,請參閱匯出要求屬性參考資料

POST 的回應格式如下:

{
    "self": "/organizations/myorg/environments/test/analytics/exports/a7c2f0dd-1b53-4917-9c42-a211b60ce35b",
    "created": "2017-09-28T12:39:35Z",
    "state": "enqueued"
}

請注意,回應中的 state 屬性已設為 enqueued。POST 要求會以非同步方式運作。也就是說,要求傳回回應後,這項作業仍會在背景執行。state 的可能值包括:enqueuedrunningcompletedfailed

如要查看資料匯出要求的狀態,請使用 self 屬性中傳回的網址,如「查看數據分析匯出要求的狀態」一文所述。要求完成後,回應中的 state 屬性值會設為 completed。接著,您就可以在資料存放區中存取分析資料。

範例 1:將資料匯出至 Cloud Storage

下列要求會從 myorg 機構的 test 環境,匯出過去 24 小時的完整原始資料集。內容會以 JSON 格式匯出至 Cloud Storage:

curl -X POST -H "Content-Type:application/json" \
"https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/analytics/exports" \
  -d \
  '{
    "name": "Export raw results to Cloud Storage",
    "description": "Export raw results to Cloud Storage for last 24 hours",
    "dateRange": {
      "start": "2018-06-08", 
      "end": "2018-06-09"
    },
    "outputFormat": "json",
    "datastoreName": "My Cloud Storage data repository"
  }' \
  -u orgAdminEmail:password

如要監控工作狀態,請使用 self 屬性指定的 URI,詳情請參閱「查看 Analytics 匯出要求的狀態」。

範例 2:將資料匯出至 BigQuery

下列要求會將以半形逗號分隔的 CSV 檔案匯出至 BigQuery:

curl -X POST -H "Content-Type:application/json"  \
  "https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/analytics/exports" \
  -d \
  '{
    "name": "Export query results to BigQuery",
    "description": "One-time export to BigQuery",
    "dateRange": {
      "start": "2018-06-08", 
      "end": "2018-06-09"
    },
    "outputFormat": "csv",
    "csvDelimiter": ",", 
    "datastoreName": "My BigQuery data repository"
  }' \
  -u orgAdminEmail:password

注意:匯出的 CSV 檔案會建立 BigQuery 資料表,並使用下列前置字串:

<PREFIX>_<EXPORT_DATE>_api_<UUID>_from_<FROM_DATE>_to_<TO_DATE>

如要監控工作狀態,請使用 self 屬性指定的 URI,詳情請參閱「查看 Analytics 匯出要求的狀態」。

範例 3:匯出營利資料

如果機構環境已啟用營利功能,您可以執行兩種資料匯出作業:

  • 標準資料匯出,如前兩個範例所示。
  • 匯出營利資料,匯出與營利相關的資料。

如要匯出營利資料,請在要求酬載中指定 "dataset":"mint"。機構和環境必須支援營利功能,才能設定這個選項,否則請從酬載中省略 dataset 屬性:

  '{
    "name": "Export raw results to Cloud Storage",
    "description": "Export raw results to Cloud Storage for last 24 hours",
    "dateRange": {
      "start": "2018-06-08", 
      "end": "2018-06-09"
    },
    "outputFormat": "json",
    "datastoreName": "My Cloud Storage data repository",
    "dataset":"mint"
  }'

匯出 API 配額簡介

為避免過度使用高費用的資料匯出 API 呼叫,Edge 會對 /analytics/exports API 的呼叫次數強制執行配額:

  • 如果機構和環境未啟用營利功能,配額如下:

    • 每個機構/環境每月 70 次呼叫。

    舉例來說,如果機構有兩個環境 (prodtest),每個環境每月可發出 70 次 API 呼叫。

  • 如果機構和環境已啟用營利功能,配額如下:

    • 每個機構和環境每月 70 次呼叫標準資料
    • 每個機構和環境每月可進行 70 次呼叫,以取得營利資料

    舉例來說,如果您在 prod 機構啟用營利功能,即可發出 70 次標準資料的 API 呼叫 70 次營利資料的 API 呼叫。

如果超出呼叫配額,API 會傳回 HTTP 429 回應。

查看所有 Analytics 匯出要求的狀態

如要查看所有 Analytics 匯出要求的狀態,請向 /analytics/exports 發出 GET 要求。

舉例來說,下列要求會傳回 myorg 機構中 test 環境的所有分析資料匯出要求狀態:

curl -X GET \
  "https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/analytics/exports" \
  -u email:password

以下範例顯示的回應列出兩項匯出要求,其中一項已加入佇列 (已建立並在佇列中),另一項則已完成:

[
  {
    "self":
"/v1/organizations/myorg/environments/test/analytics/exports/e8b8db22-fe03-4364-aaf2-6d4f110444ba",
    "name": "Export results To Cloud Storage",
    "description": "One-time export to Google Cloud Storage",
    "userId": "my@email.com",
    "datastoreName": "My Cloud Storage data store",
    "executionTime": "36 seconds",
    "created": "2018-09-28T12:39:35Z",
    "updated": "2018-09-28T12:39:42Z",
    "state": "enqueued"
  },
  {
    "self":
"/v1/organizations/myorg/environments/test/analytics/exports/9870987089fe03-4364-aaf2-6d4f110444ba"
    "name": "Export raw results to BigQuery",
    "description": "One-time export to BigQuery",
    ... 
  }
]

查看 Analytics 匯出要求狀態

如要查看特定 Analytics 匯出要求的狀態,請對 /analytics/exports/{exportId} 發出 GET 要求,其中 {exportId} 是與 Analytics 匯出要求相關聯的 ID。

舉例來說,下列要求會傳回 ID 為 4d6d94ad-a33b-4572-8dba-8677c9c4bd98 的 Analytics 匯出要求狀態。

curl -X GET \
"https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/analytics/exports/4d6d94ad-a33b-4572-8dba-8677c9c4bd98" \
-u email:password

以下是回應範例:

{
  "self":
"/v1/organizations/myorg/environments/test/analytics/exports/4d6d94ad-a33b-4572-8dba-8677c9c4bd98",
  "name": "Export results To Cloud Storage",
  "description": "One-time export to Google Cloud Storage",
  "userId": "my@email.com",
  "datastoreName": "My Cloud Storage data store",
  "executionTime": "36 seconds",
  "created": "2018-09-28T12:39:35Z",
  "updated": "2018-09-28T12:39:42Z",
  "state": "enqueued"
}

如果分析資料匯出作業未傳回任何分析資料,executionTime 會設為「0 秒」。

匯出要求屬性參考資料

下表說明匯出數據資料時,可以 JSON 格式在要求主體中傳遞的屬性。

屬性 說明 是否必要?
description 匯出要求的說明。
name 匯出要求的名稱。
dateRange

yyyy-mm-dd 格式指定要匯出資料的 startend 日期。例如:

"dateRange": {
    "start": "2018-07-29",
    "end": "2018-07-30"
}

dateRange 值只能涵蓋一天。日期範圍的起始時間為start當天的世界標準時間 00:00:00,結束時間為end當天的世界標準時間 00:00:00。

注意:為確保系統擷取前一天的所有資料,您可能需要延後匯出要求開始時間 (例如世界標準時間凌晨 00:05:00)。

outputFormat 指定為 jsoncsv
csvDelimiter

CSV 輸出檔案中使用的分隔符號 (如果 outputFormat 設為 csv)。預設為半形逗號 (,) 字元。支援的分隔符號包括逗號 (,)、直立線 (|) 和 Tab 鍵 (\t)。

datastoreName 包含資料儲存庫定義的資料儲存庫名稱。

例如:

{
    "name": "Export raw results to Cloud Storage",
    "description": "Export raw results to Cloud Storage for last 24 hours",
    "dateRange": {
      "start": "2018-06-08", 
      "end": "2018-06-09"
    },
    "outputFormat": "json",
    "datastoreName": "My Cloud Storage data repository"
  }