首次分析基础框架构建〜什么是分析基础框架?常用产品概述〜
分析基础是什么?
这是一个旨在分析应用程序日志、传感器数据、访问日志等的系统。
基本上,我只是一个普通的应用程序工程师,但最近我经常接到类似的问题:能否利用我们的数据做些什么?
所以我在这里记录了我进行调查和实现时积累的知识。
本文中将介绍分析流程以及常用的云服务和软件。
分析的顺序分布
建立基盘的原因各种各样,但我认为最常见的是收集数据并将其用作经营和营销等业务指南。为了实现这一目标,所需的工作可以大致分解如下。
-
- データを集める
-
- データの解析をする
-
- 解析済みデータを保存する
- 解析済みデータを見える化する
在介绍软件之前,我打算先解释一下在构建分析系统时经常使用的术语和分析方法的大致分类和特点。
1. 常用於分析系統中的術語
- データレイク
不同应用程序产生的日志文件等原始数据的保存位置。
- ETL
抽取/转换/加载的缩写
将原始数据从存储在服务器或文件中的目标位置提取出来,并将其转换并分析,然后将数据注册到数据仓库(通常为下述位置)的过程和操作。
- データウェアハウス
从数据湖和应用程序的关系型数据库等获取数据,并以易处理的状态保存起来,进行聚合和分析。由于负载较高,通常使用数据库集群或类似产品。
- データマート
在组织中保存着具有强烈的汇总数据意义的文件。
- ダッシュボード
用于将解析过的数据可视化的软件。
2. 各种分析的类型
在解析的种类有很多种,但就目前而言,大致可以分为三类。
2-1. 数据汇总(描述性统计)
通过简单的总和或计数等方式进行汇总。这是最简单且易于理解的分析结果。
2-2. 统计分析(推测统计)
统计学是用于预测未来的回归分析和聚类等方法。如果没有一定程度的统计或数学理解,建立统计模型将会很困难。此外,在可视化时,表示方法也会变得更加困难。
2-3. AI分析
使用深度学习和神经网络等高级推理统计方法进行分析。理解困难度也增加了,而且据说将结果可视化的表达方式的难度也进一步提高了。由于从未构建过被称为AI水平的统计分析系统,以上都是听说的。
我不太清楚正直的AI和推测统计之间的分水岭在哪里。我知道它在贝叶斯统计之后,但我不确定。支持向量机是统计学还是人工智能?我认为可能没有明确的界限。
3. 软件和服务的介绍
好了,接下来我们开始介绍服务。这次我打算按照使用者的不同角色来进行分开。这次按照以下方式进行分别。
-
- データ収集サービス
-
- データレイク
-
- ETLツール
-
- データウェアハウス
-
- データマート
- ダッシュボード
3-1. 数据收集服务
3-1-1. OSS产品
3-1-1-1. 系统日志服务
这是一个用于集中Linux自带日志的守护进程。
由于使用UDP通信,不适合确保数据的可靠性,但由于处理轻量化,适合在资源有限的设备上运行,如物联网设备。
3-1-1-2。Fluentd
这是一个由Ruby制作的开源软件。通过在服务器上安装代理程序,可以将日志发送到Fluent服务器。
作为复杂之处,由于需要从各种服务器发送日志,导致服务器的责任变得多样化。
3-1-1-3. 阿帕奇卡夫卡
这是Apache的软件。虽然它不仅限于仅用于数据收集,但由于其支持拉取型(Kafka请求数据的方式),它在日志收集方面非常方便实用,因此经常受到重视。
3-1-2. 云服务
3-1-2-1. 运动力学
这是在AWS上的服务。
使用这个云服务专用的代理程序,可以将流媒体转化为文件。
3-2. 数据湖
只需将数据分散存储,所以这次只介绍名称就好了。
只要有网络连接的存储,如果负载不大可能就没有问题。
* S3(AWS)
* Hadoop(HDFS)
* Filestore(GCP)
3-3. ETL工具
3-3-1. 胶水
可以使用Apache Spark的脚本和Python来创建在AWS上的ETL批处理程序。
3-3-2. Athena
三三二, 阿thena。
这项服务让您能够用SQL查询S3中文件的数据,不仅可在分析平台上使用日志文件数据,还可方便地在应用程序中使用。
3-3-3. 大查询
在主要功能方面,BigQuery的意义更倾向于数据仓库,但也可以用作ETL程序。
3-3-4. 各种程序的批处理
使用PHP、Python、Ruby等框架,可以启动批处理并将数据导入数据仓库等地方。
3-4. 数据仓库
3-4-1. 红移
这是在AWS上提供的服务。费用是按照实际运行时间收取的。
与BigQuery相比,虽然初始费用较高,但如果预计要进行一定程度的数据处理并引入分析系统,那么可以使用此服务。
如果已经决定使用AWS,那么这是唯一的选择。
3-4-2. BigQuery -> 三-四-二。BigQuery
ETL工具中已经稍微解释了一下,BigQuery是一个将功能整合为云服务的数据仓库。与其他公司的产品不同,它没有可以完全管理数据分析的类似服务,因此在构建专门用于分析的系统时,我们建议选择GCP并使用BigQuery。
3-4-3. Apache Spark
3-4-3. Apache Spark 是一种计算框架。
这是一款Apache的软件,用于进行实时分析的数据仓库产品。
如果想要在本地进行实时分析,这是唯一的选择。
3-4-4 是指Hadoop。
这也是Apache的软件。虽然它无法进行实时分析,但它是一个可以进行分布式处理的平台。
3-5. 数据集市
坦白说,只要仪表板支持,任何东西都可以。更倾向于依赖仪表板。
3-6. 仪表盘
3-6-1. Elasticsearch和Kibana
Elasticsearch是一個原本用於全文檢索的應用程式,但通過讀取分析結果,可以實現可視化的功能。
如果你正在使用Elasticsearch,建議你使用Kibana。然而,單獨使用Kibana非常麻煩(可疑的能力水平),所以如果不需要Elasticsearch,最好不要考慮它。
3-6-2. 红雀
这是一个简单的仪表板工具。只要是接受SQL的数据源,它可以处理任何类型的数据。如果只是临时需要的话,我推荐使用Redash。
所以,我向大家介绍了一些可以用于分析系统的产品。以上就是现场的情况。