首頁

AWS SAA-C03 口袋筆記 - Data & Analytics

Amazon Athena

  • 主要用於查詢分析S3的資料,舉例: VPC Flow Logs, ELB Logs, CloudTrail trails etc。
  • Serverless, SQL方式去查詢 (build on Presto)
  • Pricing $5.00/TB of data scanned
  • 提高效率、省錢的方式
    • 使用欄位式資料(columnar data)會比較省錢 (less scan)
      • Apache Parquet or ORC 資料格式
      • 效能也會大幅提升
      • 可以用Glue來幫忙轉檔
    • 透過壓縮檔案(bzip2, gzip, lz4...)來減少每次抓取的量, 進而提高效率
    • 在S3裡面去做partition, 來加速查詢。
    • 盡量存放大檔(>128mb)減少scan。
  • 可以透過Federated Query來查詢分析S3以外的資料來源。Federated Query透過Lambda (w/ DataSource Connector)來跑, 最後會將查詢結果存回S3裡。如下圖:


  • Business Intelligence (BI)服務,建立視覺化報表用。通常與Athena搭配使用。
  • 如果將檔案資料直接匯入QuickSight, 可以使用SPICE (內存引擎)。
    • 使用SPICE,分析查詢可以更快、更省錢
    • 例如將現有的csv, json, xlsx檔案匯入做分析
  • Enterprise edition: 可以設定Column-Level security (CLS) 限制哪些欄位的資料存取權限
  • QuickSight可定義自己的User(standard version)和Groups(enterprise version), 但這些用戶跟群組跟IAM無關,只用於QuickSight。
  • QuickSight可以跟很多資料源做整合,如下圖:
  • 欄位式的資料倉儲 (based on PostgreSQL, for OLAP)
  • 不是所有cluster的都有Multi-AZ
  • c luster -> take snapshot -> automated/manual copy -> copied snapshot -> restore -> cluster in another Region 
  • 透過Kinesis Data Firehose, S3 Copy Command將資料寫入到Redshift
  • 也可以從EC2 JDBC driver連到Redshift後直接寫入。建議批量寫入會比較有效率。
  • 透過Redshift Spectrum可以直接查詢S3的資料

AWS OpenSearch (aka Amazon ElasticSearch)
  • 類似ElasticSearch, 可做log查詢、全文查詢。通常與主資料庫做相輔相乘。
  • 資料通常可由Lambda或Kinesis DataFirehose灌入。舉例:
    • DynamoDB -> DynamoDB Stream -> Lambda -> OpenSearch
    • CloudWatch Logs -> Subscription Filter -> Kinesis Data Firehose/Lambda -> OpenSearch
    • Kinesis Data Streams -> Kinesis Data Firehose/Lambda -> OpenSearch
  • 用於跑Apache Hadoop或Apache Spark 
  • 跟data processing, 機器學習, web indexing, big data都可以想到EMR
  • Master和Core Node可以用reserved (min 1 year) purchase option來減少成本
  • Task Node 可以用 spot instance purchase option來減少成本
  • 資料萃取服務(extract, transform, and load; ETL)

  • 透過Glue將資料轉換成Parquet檔案格式餵給Athena架構圖如下:

  • 一些進階的應用:
    • Glue Job Bookmarks: 用來防止資料重複被處理
    • Glue Elastic Views: 用來建來建立Views從不同的資料來源
    • Glue DataBrew: 透過預先建制的轉化用來清理、標準化資料
    • Glue Studio: new GUI 去建立、執行、監控Glue裡的ETL jobs
    • Glue Streaming ETL: 可以透過streaming方式做ETL (Kinesis, Kafka...)
  • 用來建立資料湖的服務 (on top of Glue)
  • 最大好處是可以集中資料權限的管理



Reference

  • https://www.udemy.com/course/aws-certified-solutions-architect-associate-saa-c03