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的区别
Facebook评论