搜索可在AWS / Azure / 其他服务中使用的数据管理与利用服务

由于需要调查数据管理和利用方面的服务,无论是AWS还是Azure,我为自己做了一些备忘录。

根据AWS官网上的以下页面进行参考和构建:
https://aws.amazon.com/jp/big-data/datalakes-and-analytics/

数据管理和利用服务的构成示例。

カテゴリユースケースAWS のサービス分析インタラクティブ分析Amazon Athena
ビッグデータ処理Amazon EMR
データウェアハウジングAmazon Redshift
リアルタイム分析Amazon Kinesis
運用上の分析Amazon Elasticsearch Service
ダッシュボードと可視化Amazon QuickSight予測分析と機械学習フレームワークとインターフェイスAWS 深層学習 AMI
プラットフォームサービスAmazon SageMakerデータの移動リアルタイムのデータ移動Amazon Managed Streaming for Apache Kafka (MSK)

Amazon Kinesis Data Streams

Amazon Kinesis Data Firehose

Amazon Kinesis Data Analytics

Amazon Kinesis Video Streams

AWS Glueデータ統合・データ処理データ統合・品質管理AWS Glueデータ統合・データ処理データ統合・品質管理AWS LambdaデータレイクオブジェクトストレージAmazon S3 /AWS Lake Formation
バックアップとアーカイブAmazon S3 Glacier/AWS Backup
データカタログAWS Glue AWS Lake Formation
サードパーティーのデータAWS Data Exchange

可以通过查询等方式从S3中调用数据的服务

亚马逊 Athena

概述:这是一个可以对存储在S3中的日志进行SQL查询和分析的服务。
特点:这是一个无服务器服务,可以直接对存储在S3上的数据进行查询。
可以理解为几乎完全是Presto。
不过,根据说明看起来与Hive非常相似。
还可以对Amazon Document DB/Amazon Dynamo DB/Amazon HBase/Amazon Athena Elasticsearch等进行查询。
此外,虽然有限制,但使用Amazon Athena Lambda JDBC可以查询常规数据库(如MySQL、PostgreSQL、Amazon Redshift)的功能。(https://docs.aws.amazon.com/ja_jp/athena/latest/ug/athena-prebuilt-data-connectors.html)
需要注意的是,虽然可以对存储在S3上的文件进行查询,但不能直接访问常规数据库。
它的优势在于可以处理非结构化数据(如常规日志、CSV等),如果是经过Spark处理的图像数据也可以进行查询。(https://aws.amazon.com/jp/athena/faqs/)
它使用了Hive的数据库和表创建,因此序列化器和反序列化器也可以通用。
它还具备机器学习功能。(https://aws.amazon.com/jp/athena/features/?nc=sn&loc=2)
作为限制,通常只能查询S3上的文件,所以数据必须先放入S3中。
此外,不能在数据库和S3之间执行查询。
它不推荐作为数据加工工具,而是推荐作为数据分析工具使用。
与EMR和RedShift的区别在于,EMR和RedShift需要管理实例,但这个服务是一个查询引擎,不需要管理实例。
应用思考:
由于可以处理存储在S3中的非结构化数据、半结构化数据和结构化数据,因此可以用于日志分析等。
但是,由于连接常规数据库困难,因此在使用它进行数据分析时功能不足(无法处理常规数据库上的数据)。
而且,由于只能进行查询操作,作为加工工具的功能也不太理想。
可能需要寻找其他工具来处理数据库上的数据和非结构化数据(在这方面,我认为trifacta和DataRefinery表现出色)。
可使用的文件格式:
由于是针对存储在S3上的文件进行查询,因此支持以下文件格式:CSV、JSON、ORC、Avro、Parquet。
收费方式:
Amazon Athena仅按照执行的查询收费。
收费根据每个查询扫描的数据量计算。
通过压缩、分割和转换为列格式,可以实现大幅度的成本削减和性能提升。
这些操作可以减少在Athena上执行查询时需要扫描的数据量。(→妥善设计分区等,这样可以减少因使用大容量数据而增加的费用量的担忧)

亚马逊弹性MapReduce

摘要:这是一个Hadoop集群。
可用的Hadoop服务包括以下内容:https://aws.amazon.com/jp/emr/features/?nc=sn&loc=5。
用途考察:由于Hadoop集群中包含常见的Hadoop服务+ sqoop,spark,各种笔记本,Tensorflow等,因此可以用作大数据分析平台。然而,在将通用数据库上的数据整合时可能需要一些技巧。数据存储选择为S3或HDFS。与Amazon Athena的区别在于,对S3上的数据进行多么复杂的分析处理以及处理的数据量。查询数据量越大,似乎越应使用EMR(面向大数据)。可以建立费用曲线比较Athena和EMR的成本。费用体系:Amazon EMR的费用除了包括Amazon EC2的费用(基本服务器费用),还另外加上Amazon EBS的费用(如果连接了Amazon EBS卷)。这里也按秒计费,最小计费时间为1分钟。Amazon EC2提供了多种收费选项,例如按需(请参阅下面)、1年和3年的预留实例、Spot实例等。Spot实例是备用的Amazon EC2容量,可以享受高达90%的折扣价使用,相较于按需价格。有关与按需相比省钱方面的Spot实例成本节约,请在Spot实例顾问页面上使用“EMR支持的实例类型”进行过滤以确认。

亚马逊RedShift

概述:这是一个类似于PostgreSQL的列导向数据库。
特点:将S3作为数据存储位置进行数据管理的列导向数据库。
用途思考:如果要在AWS服务上创建DWH,使用RedShift是常见选择。
创建一个以S3作为数据存储位置并使用RedShift作为数据库的集群。
然而,根据使用方式,当在S3上配置源数据时,似乎是在S3上进行操作,从S3加载数据又看起来像是RedShift的功能,所以在将数据放入S3后,如果可以查看数据,那么使用Athena也可以吗?

关于根据不同服务的选择:

Q: Amazon Athena、Amazon EMR、Amazon Redshift 的差異是什麼?

Amazon Athena等查詢服務、Amazon Redshift等數據倉庫、Amazon EMR等精煉的數據處理框架,都能滿足不同的需求和使用案例。需要根據工作選擇合適的工具。尤其在需要使用涉及多個連接和子查詢的複雜SQL的企業報表和商業智能工作負載中,Amazon Redshift能夠提供高速的查詢性能。使用Amazon EMR可以以簡單且成本效益高的方式執行高度分散的處理框架,如Hadoop、Spark、Presto,相對於本地部署。Amazon EMR具有靈活性,可以運行自定義應用程序和代碼,定義詳細的計算、內存、存儲和應用程序參數,以優化分析需求。使用Amazon Athena可以輕鬆對S3內的數據進行即時查詢,無需設置和管理伺服器。

Q:如何使用像Amazon Redshift这样的全功能企业数据仓库和像Amazon Athena这样的查询服务?如果需要从各种来源(如库存系统、金融系统和零售销售系统)中以一般格式获取数据并长期保存,以构建复杂的业务报告,此时像Amazon Redshift这样的数据仓库是最合适的选择。

数据仓库可以从整个企业中收集数据,并用作“可靠的唯一信息源”来生成报告和进行分析。数据仓库从多个来源获取数据,并进行格式化、整理和存储。此外,数据仓库还支持执行复杂且快速的查询以生成业务报告。Amazon Redshift的查询引擎针对需要执行复杂查询,涉及连接多个大型数据库表的用例进行了特别优化,以发挥最佳性能。TPC-DS是为了复制这些用例而设计的标准基准,在Redshift上执行这些查询比针对非结构化数据进行优化的查询服务高达20倍的速度。如果需要在非常大型、高度结构化的数据中进行大量表之间的连接并执行查询,请推荐使用Amazon Redshift。

如果使用像Amazon Athena这样的查询服务,您可以直接对Amazon S3的数据进行交互式查询,而不必担心数据格式化和基础架构管理的问题。例如,Athena非常适合快速查询某些网站日志,并且仅需要解决网站性能问题的情况。使用查询服务,您可以快速启动,只需定义数据表并使用标准SQL开始查询即可。

另外,您也可以同时使用这两项服务。在将数据加载到Amazon Redshift之前,您可以在Amazon S3上进行数据暂存,然后这些数据也可以在Amazon Athena中进行注册,以便执行查询。

Q: 如何区分 Amazon EMR 和 Amazon Athena 的使用方法?
A: Amazon EMR 的功能远远超出了简单的 SQL 查询。通过使用 EMR,您可以扩展执行机器学习、图形分析、数据转换、流式数据以及几乎所有可编写代码的应用程序所需的各种数据处理任务。如果您需要使用最新的大数据处理框架,如 Spark、Hadoop、Presto 和 Hbase,来处理和分析非常大规模的数据集并使用自定义代码,您可以使用 Amazon EMR。在 Amazon EMR 中,您可以完全控制集群的配置和已安装的软件。

如果您想在不管理基础设施和集群的情况下对Amazon S3的数据执行交互式的即席SQL查询,您可以使用Amazon Athena。

实时数据处理

关于实时数据处理,暂时搁置。

亚马逊Kinesis

特点:实时数据流式传输
类似于Kafka

亚马逊 Elasticsearch 服务

特征:全文搜索引擎
通过收集操作系统和应用程序的日志,在一个界面上查看日志
用途:
无需进入操作系统逐个查找日志,可以通过Elasticsearch集中收集并进行高效的日志分析。
对于服务器数量较多、资源动态变化(如在OpenShift等平台下服务器数量动态变化)且难以监控的环境非常有效。
与Elastic + Kibana和Splunk相比较。
https://blog.yoslab.com/entry/2014/11/22/002107
对于非结构化数据处理似乎最为强大。
典型的试验例子是Twitter→Spark→Elasticsearch→Kibana的可视化示例。
另外,还可以通过S3 → Lambda → Elasticsearch等方式进行流程处理。

然而,在进行数据分析时,使用查询引擎而不是独特的体验可能成为一个问题。
如果可以在Trifacta等工具中进行加工处理,那将非常方便。
据说,作为数据存储目标,可以通过elasticsearch→hive来实现数据搜索(使用查询)的功能。
然而,由于并行化的数量似乎受限于elasticsearch的分片数,可能存在速度方面的问题。

亚马逊Lambda

特征:提供程序执行环境
提供以下语言的开发环境:
Java
Go
PowerShell
Node.js
C#
Python
Ruby
此外,通过使用扩展功能(Lambda层),还支持以下语言:
C++
Rust
Erlang
Elixir
COBOL
PHP
用途:
几乎可以做任何与上述语言相关的事情
如日志收集、数据处理、分析、机器学习等
由于依赖使用者的技能水平,可能更适合会使用编程的人员
作为IT公司,我认为很容易引入,但对于其他公司来说,除了IT部门以外的部门可能难以引入
可能会有人说像Excel一样简单,想用图形界面之类的
如果用于数据集成,与Glue相比哪个更容易使用
然而,Lambda的功能更加全能(因为涉及到编程…)

bannerAds