AWS – 数据分析Athena / RedShift / OpenSearch / LakeFormation / KinesisDataAnalytic / MSK

Amazon Athena

  • Serverless 分析在S3当中的文件
  • USD5 per TB scan
  • 使用sql语言分析文件
  • 支持csv, json, avro, parquet, orc
  • 通常配合quicksight一起使用
  • 用例:分析vpc flow log, ELB log, CloudTrail log

Amazon Athena – Federated Query

  • 可以统一搜寻来自不同数据源的数据
  • 使用lambda作为数据源连接器,链接至不同种类的数据库

Amazon Redshift

  • OLAP数据库
  • 比其他的data warehouse快速10X倍
  • RedShift的底层是PostgreSQL但不是OLTP
  • RedShift有Leader Node和Compute Node
  • Leader Node是拿来聚合查询结果和调度compute node进行查询
  • Compute Node是执行数据查询然后把结果返回给Leader Node

RedShift – Snapshots & DR

  • 有些Cluster Type是支持MultiAZ的, 所以天然支持DR
  • 如果单体机的话要支持DR的话就需要做单点的snapshot
  • shapshot存在S3,snapshot存储是incremental的,所以省容量
  • 可以把snapshot还原到新的cluster上
  • 可以自动生成snapshot,每增加5GB,或每8小时,需要设定retention
  • 手动生成snapshot可以永久保存直到手动删除
  • 可以设定自动或手动的把snapshot copy到其他region以达到DR的效果

S3的数据导入Redshift当中

  • 当文件上传到S3之后,Kinesis Data Firehose就会执行copy command, 把数据导入到redshift
  • 如果是使用EC2把数据写入RedShift的话建议使用批量写入,因为RedShift是OLAP数据库对于每条单独写入数据库的工作非常没有效率的

Redshift Spectrum

  • 一开始数据是存在在S3当中,想要使用RedShift分析,但是不想把数据导入到RedShift先
  • query语句当中注明获取s3当中的data,成千上万的Redshift Spectrum就会往S3当中读取和query数据,然后聚合了就往上传送

OpenSearch

  • 因为license的问题,AWS把ElasticSearch给改名成OpenSearch了
  • 不支持SQL语言查询,但是能够使用插件开启这个功能
  • 类似于Kibana,OpenSearch有提供OpenSearch Dashboard

典型的DynamoDB结合OpenSearch方案

  • 当输入CRUD是会触发DynamoDB Stream
  • 接着就会触发Lambda把dynamo的数据写入OpenSearch当中
  • 当进行关键字搜寻的时候EC2就会在OpenSearch搜寻先
  • 得到了搜寻结果才从DynamoDB获取完成的物品数据

Kinesis Data Stream & Kinesis Data Firehose 结合 OpenSearch
【方案1】

  • 数据从KDS导入到KDF,然后使用lambda进行数据的格式转换
  • 最后再把数据导回到KDF,最后才把数据导入到OpenSearch

【方案2】

  • Lambda从KDS拉数据,然后把数据导入到OpenSearch当中

EMR (Elastic MapReduce)

  • EMR创建Hadoop Cluster
  • EMR帮忙设定了Apache Spark, Flink, Hbase, Presto
  • 使用在大数据分析,机器学习
  • EMR是建立在多个EC2之上
  • EMR集群当中有MasterNode,CoreNode, TaskNode
  • MasterNode 是coordinate健康的CoreNode
  • CoreNode是运行任务和储存数据
  • TaskNode只是运行任务而已,所以TaskNodes适合运行在EC2 Spot Instance

Amazon QuickSight

  • Serverless的机器学习BI分析面板
  • 根据Price per Session 付费
  • 可以integrate RDS, Aurora, Athena, Redshift, S3
  • 如果把数据导入到QuickSight就能够使用SPICE Engine 以达到 In-Memory Computation, 如果是链接外部的数据库就无法使用这个功能
  • Enterprise Edition (Column-Level security)能够根据用户的权限查看相关的数据

Amazon QuickSight – Dashboard权限设置

  • 在QuickSight 普通版能够创建User,如果是Enterprise Version就能够创建Group
  • 这个User和Group和IAM的是完全没有关系的,这个是专门给QuickSight使用的用户管理工具
  • 当创建好Dashboard之后就能发出,然后针对特定的User或Group做分享
  • 被授权的User能够查看Dashboard也能查看底层的数据

AWS GLUE

  • Serverless 为了准备分析的数据,做转换数据格式
  • ETL service
  • 根据以下的案例,当CSV文件上传到S3
  • 就会触发S3 Event Notification,然后触发Lambda,当然也可以直接使用EventBridge做监听
  • 然后就从S3导入CSV到Glue
  • 接着转换格式到Parquet
  • 最后方便Athena做分析,因为Athena分析Parquet文件比较有效率

Glue Data Catalog

  • 在数据库当中植入Glue Data Crawler
  • 之后这个Crawler就会把database的metadata (数据库的结构,table的column等等)都记录在Glue Data Catalog当中
  • 然后就能用如下图的数据分析工具,进行数据发现
  • Glue Job Bookmarks: 预防重新处理回旧数据
  • Glue Elastic Views
    – 根据不同的数据源统一进行SQL的查询,比如可以同时查询RDS和Aurora中的数据
    – 无需另外写代码
    – Glue会monitor更改的数据源
    – Serverless
  • Glue DataBrew: 数据清洗
  • Glue Studio: 新的GUI以便创建,或monitor ETL Job
  • Glue Streaming ETL (内置在Apache Spark Structured Streaming) : 兼容Kinesis Data Stream, Kafka

Lake Formation

  • AWS 提供的一项服务,用于简化构建、安全地部署和管理数据湖
  • 数据湖是一个集中存储各种类型和格式的数据的存储库,可供分析和挖掘,而 AWS Lake Formation 则使用户能够更轻松地构建和管理这样的数据湖。
  • AWS Lake Formation 提供了以下功能:
    数据收集和集成:可以轻松地将来自各种来源(例如数据库、数据仓库、日志文件等)的数据集成到数据湖中。
    数据清理和转换:提供了工具和功能,可以对数据进行清理、转换和规范化,以便于分析和挖掘。
    安全和权限管理:AWS Lake Formation 提供了精细的访问控制和权限管理功能,确保只有经过授权的用户可以访问和操作数据湖中的数据。
    数据目录和元数据管理:自动创建和维护数据湖中数据的目录和元数据,使用户能够更轻松地了解和发现可用的数据资源。
    数据查询和分析:集成了 AWS 的各种分析工具和服务,可以方便地对数据湖中的数据进行查询、分析和可视化。
  • 我们可以在Athena或是QuickSight当中限制用户直接访问数据到Aurora / S3 / RDS,或是在这些数据entity当中设置AccessControl, 这就有点麻烦了,需要个别设置
  • 我们可以使用Lake Formation统一管理数据的访问权限

Kinesis Data Analytics

  • 实时分析来自Kinesis Data Stream或Kinesis Data Firehose的数据
  • 可以获取S3的数据做参考
  • AWS Managed , serverless
  • 把已分析好的数据传入KDS或KDF

Amazon Managed Streaming for Apache Kafka (MSK)

  • MSK的功能和 Kinesis Data Stream的功能很类似
  • 以下是MSK和Kinesis Data Stream的区别

Loading

Facebook评论