本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 資料](images/pattern-img/e9ad39a1-e0a4-4429-bdc0-594b68707761/images/e70fc6e9-d9ff-426f-b245-502255a7a4fe.png)
工具
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 主控台 | 系統管理員 |
新增巢狀的 JSON 資料。 | 將您的 JSON 檔案上傳到 S3 儲存貯體。如需 JSON 檔案範例,請參閱上一節。如需指示,請參閱 Amazon S3 文件中的上傳物件。 | 系統管理員 |
任務 | 描述 | 所需技能 |
---|---|---|
創建一個用於映射 JSON 數據的表。 |
如需有關建立資料表的詳細資訊,請參閱 Athena 文件。 | 開發人員 |
建立用於資料分析的檢視。 |
如需有關建立檢視的詳細資訊,請參閱 Athena 文件。 | 開發人員 |
分析和驗證數據。 |
| 開發人員 |
任務 | 描述 | 所需技能 |
---|---|---|
將 Athena 設定為中的資料來源 QuickSight。 |
| 系統管理員 |
視覺化中的資料 QuickSight。 |
| 資料分析 |