使用 Amazon 雅典娜和亞馬遜分析和視覺化嵌套 JSON 數據 QuickSight - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon 雅典娜和亞馬遜分析和視覺化嵌套 JSON 數據 QuickSight

創建者:阿諾普·辛格 (AWS)

環境:PoC 或試點

技術:分析;資料庫

AWS 服務:Amazon Athena;Amazon QuickSight

Summary

此模式說明如何使用 Amazon Athena 將巢狀 JSON 格式的資料結構轉換為表格式檢視,然後在 Amazon 中將資料視覺化。 QuickSight

您可以將 JSON 格式的資料用於作業系統的 API 驅動資料饋送,以建立資料產品。這些數據還可以幫助您更好地了解客戶及其與產品的互動情況,以便您量身定制用戶體驗並預測結果。

先決條件和限制

先決條件

  • 一個活躍的 AWS 帳戶

  • 代表巢狀資料結構的 JSON 檔案 (此模式提供範例檔案)

限制:

  • JSON 功能與 Athena 現有的 SQL 導向函數完美整合。但是,它們與 ANSI SQL 不兼容,並且 JSON 文件預計將每個記錄在單獨的行上進行。您可能需要使用 Athena 中的ignore.malformed.json屬性來指出格式錯誤的 JSON 記錄是否應轉換為空字元或產生錯誤。 如需詳細資訊,請參閱 Athena 文件中讀取 JSON 資料的最佳做法

  • 這種模式只考慮簡單和少量 JSON 格式的數據。如果您想要大規模使用這些概念,請考慮套用資料分割,然後將資料合併為較大的檔案。

架構

下圖顯示此模式的架構和工作流程。嵌套數據結構以 JSON 格式存儲在 Amazon Simple Storage Service (Amazon S3) 中。在 Athena,JSON 資料會對應至 Athena 資料結構。然後,您可以建立檢視來分析資料,並將中的資料結構視覺化 QuickSight。

在 AWS 上分析和視覺化巢狀 JSON 資料

工具

AWS 服務

  • Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。這種模式使用 Amazon S3 來存儲 JSON 文件。

  • Amazon Athena 是一種互動式查詢服務,可協助您使用標準 SQL 直接在 Amazon S3 中分析資料。此模式使用 Athena 來查詢和轉換 JSON 資料。只要在中執行一些動作 AWS Management Console,您就可以將 Athena 指向 Amazon S3 中的資料,並使用標準 SQL 執行一次性查詢。Athena 是無伺服器服務,因此無需設定或管理基礎結構,而且您只需為執行的查詢付費。Athena 會自動擴充並並行執 parallel 查詢,因此即使是大型資料集和複雜的查詢,結果也很快。    

  • Amazon QuickSight 是雲端規模商業智慧 (BI) 服務,可協助您在單一儀表板上視覺化、分析和報告資料。 QuickSight 可讓您輕鬆建立和發佈包含機器學習 (ML) 深入解析的互動式儀表板。您可以從任何裝置存取這些儀表板,並將其嵌入到您的應用程式、入口網站和網站中。

範例程式碼

下列 JSON 檔案提供您可以在此模式中使用的巢狀資料結構。

{ "symbol": "AAPL", "financials": [ { "reportDate": "2017-03-31", "grossProfit": 20591000000, "costOfRevenue": 32305000000, "operatingRevenue": 52896000000, "totalRevenue": 52896000000, "operatingIncome": 14097000000, "netIncome": 11029000000, "researchAndDevelopment": 2776000000, "operatingExpense": 6494000000, "currentAssets": 101990000000, "totalAssets": 334532000000, "totalLiabilities": 200450000000, "currentCash": 15157000000, "currentDebt": 13991000000, "totalCash": 67101000000, "totalDebt": 98522000000, "shareholderEquity": 134082000000, "cashChange": -1214000000, "cashFlow": 12523000000, "operatingGainsLosses": null } ] }

史诗

任務描述所需技能

建立 S3 儲存貯體。

若要建立儲存貯體來存放 JSON 檔案,請登入 AWS Management Console,開啟 Amazon S3 主控台,然後選擇 [建立儲存貯體]。如需詳細資訊,請參閱 Amazon S3 文件中的建立儲存貯體。 

系統管理員

新增巢狀的 JSON 資料。

將您的 JSON 檔案上傳到 S3 儲存貯體。如需 JSON 檔案範例,請參閱上一節。如需指示,請參閱 Amazon S3 文件中的上傳物件

系統管理員
任務描述所需技能

創建一個用於映射 JSON 數據的表。

  1. 開啟 A thena 主控台

  2. 依照 Athena 文件中的指示建立資料庫。

  3. 從 [資料庫] 功能表中,選擇您建立的資料庫。

  4. 在查詢編輯器中,輸入如下CREATE TABLE陳述式:

    CREATE EXTERNAL TABLE financials_json ( symbol string, financials array< struct<reportdate: string, grossprofit: bigint, totalrevenue: bigint, totalcash: bigint, totaldebt: bigint, researchanddevelopment: bigint>> ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://s3bucket-for-athena/'

    其中LOCATION指定包含 JSON 檔案的 S3 儲存貯體的位置。

  5. 選擇「執行」以建立表格。

如需有關建立資料表的詳細資訊,請參閱 Athena 文件

開發人員

建立用於資料分析的檢視。

  1. 開啟 A thena 主控台

  2. 依照 Athena 文件中的指示建立資料庫。

  3. 從 [資料庫] 功能表中,選擇您建立的資料庫。

  4. 在查詢編輯器中,輸入如下CREATE VIEW陳述式:

    CREATE OR REPLACE VIEW financial_json_view AS SELECT symbol, financials[1].reportdate one_report_date, -- indexes start with 1 financials[1].totalrevenue one_total_revenue, financials[1].reportdate another_report_date, financials[1].totalrevenue another_total_revenue FROM financials_json where symbol='AAPL' ORDER BY 1
  5. 選擇 Run (執行) 以建立檢視。

如需有關建立檢視的詳細資訊,請參閱 Athena 文件

開發人員

分析和驗證數據。

  1. 開啟 A thena 主控台

  2. 在查詢編輯器中,使用您在上一個步驟中建立的檢視來執行查詢。

  3. 根據 JSON 檔案驗證資料,以確認資料行名稱和資料類型已正確對應。

開發人員
任務描述所需技能

將 Athena 設定為中的資料來源 QuickSight。

  1. 開啟 QuickSight 主控台

  2. 選擇資料集,再選擇新增資料集

  3. 選擇 Athena 作為資料來源。

  4. 選擇包含您所建立之檢視的資料庫。

  5. 選擇您要為其建立資料集的檢視表。

  6. 在 [完成資料集建立] 頁面上,選擇 [直接查詢您的資料]。

  7. 選擇 Visualize (視覺化)

系統管理員

視覺化中的資料 QuickSight。

  1. 將資料集視覺化後,請從左窗格中選擇視覺效果,然後選擇資料集的欄位。若要取得更多資訊,請參閱 QuickSight 文件中的自學課程

  2. 將變更儲存至分析。

  3. 選擇 [發佈儀表板] 以發佈您建立的視覺效果。

資料分析

相關資源