將數據分析資料寫入檔案

根據預設,訊息處理器收集的數據分析資料會上傳至 Qpid 和 Postgres 進行處理。接著,您可以在 Edge UI 中查看數據分析資料。

或者,您也可以設定訊息處理器,將數據分析資料寫入磁碟。接著,您可以將這些資料上傳到自己的數據分析系統進行分析。舉例來說,您可以將資料上傳至 Google Cloud BigQuery。接著,您就能利用 BigQuery 和 TensorFlow 提供的強大查詢和機器學習功能,自行執行資料分析。

您也可以同時使用這兩種選項。也就是說,您可以將數據分析資料上傳至 Qpid/Postgres,同時將資料儲存至磁碟。

檔案名稱和位置

根據預設,如果您啟用將數據分析資料寫入磁碟檔案的功能,檔案會寫入下列目錄:

/opt/apigee/var/log/edge-message-processor/ax/tmp

Edge 會在 /tmp 下建立新的資料檔案目錄,間隔為一分鐘。目錄名稱的格式如下:

org~env~yyyyMMddhhmmss

例如:

myorg~prod~20190909163500
myorg~prod~20190909163600

每個目錄都包含一個 .gz 檔案,內含該時間間隔的個別資料檔案。.gz 檔案名稱的格式如下:

4DigitRandomHex_StartTime.StartTimePlusInterval_internalHostIP_hostUUID_writer_index.txt.gz

Edge 會定期將目錄及其包含的 .gz 檔案從 /tmp 移至下列任一目錄,具體取決於 uploadToCloud 訊息處理器設定屬性的設定:

  • uploadToCloud = false:檔案已移至「/opt/apigee/var/log/edge-message-processor/ax/staging」
  • uploadToCloud = true: (預設):檔案會移至 /opt/apigee/var/log/edge-message-processor/ax/failed

從 /staging 或 /failed 目錄解壓縮資料,取得數據分析資料檔案。

設定屬性

使用下列屬性,設定訊息處理器將數據分析資料寫入磁碟。以下所有屬性皆為選用:

屬性 說明
conf_analytics_analytics.saveToDisk

設為 true,即可設定訊息處理器將數據分析資料寫入磁碟檔案。

預設值為 false。

conf_analytics_analytics.sendToQueue

設為 true,即可設定訊息處理器將資料上傳至 Qpid/Postgres。設為 false,即可停用將數據分析資料寫入 Qpid/Postgres 的功能。

預設值為 true。

conf_analytics_analytics.baseDataDirectoryPath

指定寫入數據分析資料檔案的基本路徑。

預設值為 /opt/apigee/var/log/edge-message-processor/ax.

conf_analytics_analytics.allocatedDiskSpaceInMBytes

指定分配給數據分析檔案的磁碟空間 (以 MB 為單位)。

預設值為 3072。如果超出分配給數據分析資料檔案的磁碟空間,訊息處理器會停止儲存數據分析資料,並將錯誤訊息寫入記錄檔。

conf_analytics_analytics.uploadToCloud

控管數據分析檔案的最終位置。

  • false:檔案已移至「/opt/apigee/var/log/edge-message-processor/ax/staging」
  • true (預設):檔案會移至/opt/apigee/var/log/edge-message-processor/ax/failed

注意:雖然這個屬性稱為 uploadToCloud,但不會將任何資料上傳到雲端。所有數據分析資料都會保留在安裝位置。

如要設定這些屬性,請按照下列步驟操作:

  1. 在編輯器中開啟 message-processor.properties 檔案。如果檔案不存在,請建立檔案:

    vi /opt/apigee/customer/application/message-processor.properties
  2. 視需要設定屬性:

    # Enable writing analytics data to disk.
    conf_analytics_analytics.saveToDisk=true
    # Disable writing analytics data to Qpid/Postgres.
    conf_analytics_analytics.sendToQueue=false
    
    # Specify base directory for analytics data files.
    conf_analytics_analytics.baseDataDirectoryPath=/opt/apigee/var/smg
    
    # Set the disk space available for analytics files.
    conf_analytics_analytics.allocatedDiskSpaceInMBytes=3072
    # Move final analytics data to files to the /staging directory.
    conf_analytics_analytics.uploadToCloud=false
  3. 儲存變更。
  4. 確認屬性檔案的擁有者是「apigee」使用者:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. 將 axgroup-001 Analytics 群組的 consumer-type 屬性值設為 ax:

    curl -X POST -H "Content-Type:application/json" \
    "http://ms-ip:8080/v1/analytics/groups/ax/axgroup-001/properties?propName=consumer-type&propValue=ax" \
    -u sysAdminEmail:sysAdminPWord

    數據分析群組的預設名稱為 axgroup-001。在 Edge 安裝作業的設定檔中,您可以使用 AXGROUP 屬性設定數據分析群組的名稱。如果不確定數據分析群組的名稱,請在管理伺服器節點上執行下列指令,顯示群組名稱:

    apigee-adminapi.sh analytics groups list \
      --admin sysAdminEmail --pwd sysAdminPword --host localhost

    這個指令會在 name 欄位中傳回數據分析群組名稱。

  6. 重新啟動訊息處理器:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    重新啟動後,訊息處理器會將數據分析資料寫入資料檔案。

  7. 對所有訊息處理器重複執行這些步驟。