跳轉至

資料匯出

概要

資料匯出是將匯入到 Hive Analytics 的事件資料每小時抽取後,上傳到雲端儲存空間的功能。

資料匯出提供的是事件原始(raw)資料,可直接建立資料庫,或依需求加工成想要的形式,以供分析使用。

資料的檔案轉換與傳送由 Hive Analytics 提供,但雲端儲存空間仍需在您使用的雲端服務中完成註冊。

Note

資料依事件提供,不支援依專案分割傳送。


可以做什麼?

資料分析師

  • 可將 Hive Analytics 收集的資料直接匯入自家 DB,加工成需要的形式並進行深度分析。
  • 可將原始資料與內部 BI 工具或分析環境整合,建立自訂儀表板。

開發者

  • 可將 Hive 事件資料自動匯入自家資料管線。
  • 可與 AWS S3 或 GCP Cloud Storage 整合,讓每小時最新的事件資料可直接在雲端儲存空間中使用。

快速開始

如果是第一次設定資料匯出,請依照以下步驟完成雲端儲存空間整合。

  1. 在要使用的雲端儲存空間(AWS S3 或 GCP Cloud Storage)中建立資料匯出專用 bucket,並準備驗證金鑰。
  2. 進入 Analytics 控制台 > 資料 > 資料匯出 設定頁面。
  3. 選擇要抽取的事件(日誌)。(最多 10 個)
  4. 選擇儲存空間(AWS S3 / GCP Cloud Storage)並輸入 bucket 名稱。
  5. 選擇資料類型(CSV / JSON)。
  6. 註冊驗證金鑰。

Note

各雲端儲存空間的 bucket 建立與驗證金鑰發行方式,請參考 全部功能


全部功能

資料匯出邏輯

data_export_01.png 將已儲存在 BigQuery 的事件資料,依照資料匯出週期每小時轉換成檔案後,上傳至已註冊的雲端儲存空間。

資料基準

  • 查詢所選事件資料並傳送檔案到雲端儲存空間。
  • 資料會以 UTC 為基準,依每小時傳送週期抽取。
    • 例) 2023 年 9 月 1 日 01:00 (UTC) 時,會以 2023 年 9 月 1 日 00:00:00 ~ 00:59:59 (UTC) 的資料為基準進行抽取與傳送
    • 分區基準會針對 dateTime 屬性設定為查詢日 -1 day。
    • 例) 以 2023 年 9 月 1 日 00:00:00 ~ 00:59:59(UTC) 的資料為基準抽取時,會設定為 2023 年 8 月 30 日 00:00:00
    • datetime 值若小於查詢時間 -1 day,則不會包含在匯出資料中。
  • 會依資料寫入 BigQuery 的時間進行查詢。
    • bigqueryRegistTimestamp 屬性基準
    • 資料抽取範例查詢
SELECT *
FROM bigquery_table
WHERE bigqueryRegistTimestamp BETWEEN '2023-09-01 00:00:00' and '2023-09-01 00:59:59'
and dateTime >= '2023-08-31 00:00:00'

資料匯出設定

data_export_02.png

選擇事件

選擇要抽取的事件(日誌)。

  • 可輸入部分事件名稱進行搜尋與選擇。
  • 最多可選 10 個事件。

選擇儲存空間

儲存資料時必須使用雲端儲存空間。

支援雲端:

  • AWS S3
  • GCP Google Cloud Storage

位置(bucket 名)

輸入儲存空間的 bucket 名稱。

  • 若 AWS S3 bucket 名稱為 s3://s3_bucket_name → 只需輸入 s3_bucket_name
  • 若 Google Cloud Storage bucket 名稱為 gs://google_bucket_name → 只需輸入 google_bucket_name

資料類型

提供兩種資料類型。

  • CSV
  • JSON
  • 所有檔案都會以 UTF-8 編碼。

檔案上傳週期

每小時會抽取一小時範圍的資料並進行上傳。

  • 時間會以 bigqueryRegistTimestamp 屬性值為基準抽取。(UTC 基準)
    • 例) 15 點開始進行資料抽取與上傳(UTC 基準): 會抽取 bigqueryRegistTimestamp 屬性中 05:00:00 ~ 05:59:59 的資料。
  • 完成時間會因檔案數量與上傳容量而有所不同。

註冊驗證金鑰

上傳資料到雲端儲存空間需要權限。必須註冊具備資料儲存權限的驗證金鑰或驗證金鑰檔案。依雲端服務不同,驗證金鑰的註冊方式也不同。

  • S3 — 註冊 ACCESS_KEY、ACCESS_SECRET_KEY 值 data_export_03.png
  • GCS — 註冊驗證金鑰檔案 data_export_04.png

雲端儲存空間設定

GCP - Google Cloud Storage

若要匯出資料到 Google Cloud,需進行以下設定。

  1. 在 Google Cloud 控制台頁面中移至 Cloud Storage

    data_export_05.png 2. 建立專門用於資料匯出的 bucket。 - bucket 名稱一旦設定就無法變更,必要時必須刪除既有 bucket 再重新建立。 - 建議建立為資料匯出專用 bucket。 3. 建立要提供給資料匯出的服務金鑰,並授予 bucket 寫入權限。 1. 在控制台頁面移至 IAM 與管理員 → 服務帳號選單。 2. 點擊 建立服務帳號 以建立新帳號。 - 帳號使用的 ID 可依需求自行建立。(例:hive_data_transfer_account@projectId.iam.gserviceaccount.comdata_export_06.png - 帳號建立後移至金鑰分頁並建立服務用金鑰。 - 透過新增金鑰 → 建立新金鑰,建立 JSON 格式的金鑰檔案。 - 建立後請下載並妥善保管金鑰檔案。 3. 再次移至 Cloud Storage,在建立的 bucket 中移至權限分頁。 data_export_07.png - 在權限分頁中,於授予存取權 → 新增主要對象輸入剛建立的服務帳號 ID。 - 在角色指定中,於 Cloud Storage → Storage Object Creator、Storage Object Viewer 兩項權限後點擊確認。 4. 所有設定完成後,將服務用金鑰檔案註冊到 Hive Analytics 的資料匯出設定頁面。

AWS - S3

若要匯出資料到 AWS,需進行以下設定。

  1. 在 AWS 控制台頁面中移至 儲存S3data_export_08.png
  2. 建立資料匯出專用 bucket
    • bucket 名稱一旦設定就無法變更,必要時必須刪除既有 bucket 再重新建立。
    • 建議僅作為資料匯出專用 bucket 使用。
  3. 必須建立用於資料匯出的帳號。
    • 這個使用者只能作為資料匯出的專用帳號使用。請新建 IAM user
  4. 為已建立的帳號建立存取金鑰。相關資訊可在 管理 IAM 使用者的存取金鑰 - 建立存取金鑰 中確認。
    • 請將存取金鑰妥善保存在安全位置。
  5. 為已建立的帳號新增 inline policy
    • 若要包含使用者群組的內嵌政策,請參考相關項目建立 policy。
    • 選擇 JSON 分頁建立 policy,並貼上以下 JSON 程式碼。
    • YOUR-BUCKET-NAME-HERE 項目請填入已建立的 bucket 名稱。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetBucketLocation", "s3:ListBucket"],
      "Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE/*"]
    }
  ]
}
  1. 完成所有作業後,將保管的存取金鑰加入 [Analytics 控制台 > 資料 > 資料匯出] 設定。

檔案儲存格式

資料儲存目錄結構

一般檔案路徑格式:

withhive/data_export/建置類型/YYYY/MM/DD/事件名稱/事件名稱_YYYY_MM_DD_UUID.副檔名
  • 建置類型: 具有 sandboxlive 兩種值。若在 sandbox 設定,會儲存到 sandbox。
  • YYYY/MM/DD: 資料抽取的基準年/月/日。(UTC 基準)
  • UUID: 用於避免因檔名重複而覆寫的隨機值。
  • 副檔名: 會依所選檔案類型而不同。
檔案類型 是否壓縮 最終檔名
json V withhive/data_export/建置類型/YYYY/MM/DD/事件名稱/事件名稱_YYYY_MM_DD_UUID.json.gzip
csv V withhive/data_export/建置類型/YYYY/MM/DD/事件名稱/事件名稱_YYYY_MM_DD_UUID.csv.gzip

副檔名

  • csv.gzip: 由以逗號( , )分隔欄位的資料所構成的檔案。檔案壓縮時無法設定加密(不支援)。
  • json.gzip: 由以 Javascript 物件語法結構化的資料字串所構成的檔案。以行為單位區分,且是將 json 檔壓縮為 gzip 的檔案。檔案壓縮時無法設定加密(不支援)。

注意事項 & Tips

  • 無法補傳過去資料:資料匯出會自註冊時點開始運作。註冊前收集的過去資料不會回溯傳送。
  • 最大事件數限制:可選擇的事件數最多為 10 個。
  • 每個事件的抽取資料總容量限制:資料抽取時若超過 500Mbytes,將會從傳送中排除。實際傳送的資料約會壓縮為 15% 左右的檔案。