大数据测试知识梳理
2023-02-03 13:20:15 8 举报
AI智能生成
大数据测试相关知识
作者其他创作
大纲/内容
生态
组件应用
Pig
1.描述数据流的语言,称之为Pig Latin
2.运行PigLatin程序的执行环境
Hive
hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能
ElasticSearch
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值
Mahout
一个来自Apache的、开源的、JAVA的机器学习软件库
当所处理的数据规模远大于单机处理能力时成为一种可选的机器学习工具,建立在Apache的Hadoop分布式计算项目之上
当所处理的数据规模远大于单机处理能力时成为一种可选的机器学习工具,建立在Apache的Hadoop分布式计算项目之上
Spark MLlib
spark MLlib 是spark中可以扩展的机器学习库,它有一系列的机器学习算法和实用程序组成。包括分类、回归、聚类、协同过滤、等,还包含一些底层优化的方法
TensorFlow
TensorFlow是一个端到端开源机器学习平台
计算分析
批处理
MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性
Spark
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎
Tez
Tez是Apache开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业
流计算
Storm
Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。
Spark Streaming
SparkStreaming是一套框架。
SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。
SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。
Flink
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。
查询分析
Hive
hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能
Impala
Impala是Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。
Presto
Presto是Facebook开发的数据查询引擎,可对250PB以上的数据进行快速地交互式分析。
图计算
Gelly
Gelly是基于Apache Flink的图计算框架,它提供了一组高效且易于使用的API和算法,可用于处理大规模图形数据集。
Pregel
Pregel是Google开发的一种图计算框架,用于处理大规模分布式图形数据集。它采用迭代计算模型和消息传递机制,利用横向扩展的方式来提高处理能力。
GraphX
GraphX是Apache Spark中的图计算框架,提供了图计算API和图分析库。
Apache Giraph
Giraph是一个基于Hadoop的图计算框架,专门用于大规模图形算法。
GraphLab
GraphLab是一种分布式机器学习平台,也支持图计算。
Neo4j
Neo4j是一种图形数据库,提供高度可扩展的图计算功能,可以用于复杂网络分析和推荐系统等应用。
资源管理
Apache Hadoop YARN
Hadoop YARN是一种开源的大数据资源管理平台,用于管理和协调集群中的计算任务。
Kubernetes
Kubernetes是一种容器编排平台,可以自动化部署、扩展和管理容器化应用程序,并提供资源管理和调度功能。
Apache Mesos
Mesos是一种分布式系统内核,可以提供资源管理、任务调度、容错等功能,并支持多种应用框架,包括Hadoop、Spark等
Apache Slider
Slider是一个Hadoop应用程序框架,可以快速创建和部署Hadoop应用程序,并提供动态资源配置和自我修复功能。
Docker Swarm
Docker Swarm是Docker公司推出的容器编排平台,可以管理和调度Docker容器
数据存储
Hbase
HBase是一种列式数据库,可在HDFS上构建高性能、可伸缩的数据存储和处理系统。
HDFS
HDFS是一种分布式文件系统,用于存储大规模数据集,并支持高吞吐量数据访问。
ClickHouse
ClickHouse是一种高性能的列式数据库管理系统(DBMS),用于快速存储和查询大规模数据集。
Cassandra
Cassandra是一种分布式NoSQL数据库,具有高可扩展性、高可用性和低延迟的特点。
Greemplum
Greenplum是一种基于PostgreSQL的开源分布式关系数据库管理系统(DBMS),用于存储、处理和分析大规模数据集。
Hive
Hive是一种基于Hadoop的数据仓库系统,允许使用SQL语句查询和管理存储在Hadoop中的数据。
Opentsdb
OpenTSDB是一种开源的分布式时序数据库,用于存储和查询大规模的时间序列数据。它是基于Apache HBase构建的,并提供了RESTful API和支持多种客户端库的查询接口。
Amazon S3
S3是亚马逊推出的对象存储服务,可以存储任意数量的对象,并支持高可用性和高耐久性。
Parquet
Parquet是一种列式存储格式,适用于大规模结构化数据存储,并且可以提供快速查询和高性能压缩。
数据采集
Sqoop
Sqoop是一个Apache开源项目,用于在Apache Hadoop和关系型数据库之间传输大量数据。它支持多种关系型数据库,如MySQL、Oracle等。
DataX
DataX是阿里巴巴开源的数据集成工具,可以从多种数据源中提取、转换和加载数据,并支持多线程和分布式部署。
Streamset
DataX是阿里巴巴开源的数据集成工具,可以从多种数据源中提取、转换和加载数据,并支持多线程和分布式部署。
Debezium
Debezium是一个开源的分布式变更数据捕获平台,用于监视和捕获数据库的变更事件,并将其转换为易于消费的数据流。它支持多种关系型数据库,如MySQL、PostgreSQL等。
Flume
Flume是一种分布式、高可靠的数据采集系统,可以从多个源头采集数据,并将其传输到Hadoop或其他存储系统中。
Logstash
NiFi是一种基于Web的数据流管理工具,可以帮助用户轻松地收集、处理和分发大规模数据流。它支持多种数据源和数据格式,并提供了强大的数据转换和路由功能。
Kafka
Kafka是一种分布式发布订阅消息系统,可用于实时流处理和数据管道。它支持高吞吐量和低延迟的数据传输,并提供了丰富的API和客户端库。
Apache NiFi
NiFi是一种基于Web的数据流管理工具,可以帮助用户轻松地收集、处理和分发大规模数据流。它支持多种数据源和数据格式,并提供了强大的数据转换和路由功能。
Fluentd
Fluentd是一种开源的数据收集器,可从多个源头采集数据,并将其传输到其他数据存储系统中。它支持多种扩展插件,以满足不同的数据采集需求。
数据分析-OLAP
Kylin
Kylin是一种开源的分布式多维数据分析引擎,可用于构建交互式 OLAP 立方体,并提供了快速的查询和聚合功能。它可以集成到Hadoop和Spark等生态系统中。
Impala
Impala是一种开源的快速查询引擎,可用于在Hadoop中进行实时SQL查询和数据分析。它与Hive兼容,并支持多种查询类型。
Kudu
Kudu是一种快速的列式存储引擎,可用于存储和分析大规模结构化数据。它支持实时读写操作,并与Apache Impala和Apache Spark等其他大数据工具集成。
Phoenix
Phoenix是一种基于HBase的SQL查询引擎,可提供类似于关系型数据库的功能。
Druid
Druid是一种实时OLAP数据库,支持快速数据切片、查询和聚合,并能够处理大规模数据集。它具有高度可扩展性和容错性,并可以与Kafka、Hadoop等其他大数据工具集成。
Presto
Presto是一种分布式SQL查询引擎,可用于在大规模数据集上进行交互式查询和数据分析。它支持多种数据源和数据格式,并且具有多节点查询优化和高并发查询的能力。
Doris
Kudu是一种快速的列式存储引擎,可用于存储和分析大规模结构化数据。它支持实时读写操作,并与Apache Impala和Apache Spark等其他大数据工具集成。
Spark SQL
Spark SQL是Apache Spark的一个组件,用于在Spark上进行SQL查询和数据分析。它支持结构化数据处理和机器学习算法,并可以与Hive、Impala等其他数据存储和分析工具集成。
工作流调度
Azkaban
Azkaban是一个轻量级的批处理工作流管理系统,可用于协调和管理Hadoop作业和工作流。它具有直观的Web用户界面,并可以与其他工具集成。
Ooize
Oozie是一个开源的工作流调度系统,可用于协调和管理Hadoop作业和工作流。它支持多种作业类型和调度模式,并提供了易于使用的Web界面。
Airflow
Airflow是一个开源的数据管道编排工具,可用于编排、调度和监控大规模数据处理管道。它支持多种任务类型和分布式部署,并提供了丰富的API和插件。
Netflix Conductor
Conductor是Netflix开源的工作流编排引擎,可用于协调和管理微服务和批处理工作流。它支持多语言和多租户环境,并提供了灵活的插件和API。
服务协调
zookeeper
ZooKeeper是一个分布式应用程序协调服务,可用于管理和协调大规模分布式系统中的进程。它支持多个客户端库,并提供了可靠的数据同步和故障恢复机制。
consul
Consul是一种开源的服务发现和配置管理工具,可用于协调微服务和分布式系统中的服务。它支持多种服务发现方式和健康检查,并提供了易于使用的Web界面。
Apollo
Apollo是携程开源的分布式配置中心,可用于管理和协调大规模分布式系统中的配置。它支持多种配置格式和客户端库,并提供了易于使用的Web界面。
图谱
架构
应用层
业务应用
1、营销分析:通过对大数据的收集、存储和分析,可以帮助企业了解消费者的需求和行为,从而优化产品定位、营销策略和广告投放。
2、金融风控:通过对海量数据的分析,可以识别潜在的风险因素、异常交易和欺诈行为,从而保护企业和客户的利益。
3、智能制造:通过对生产流程、设备状态等数据的实时监测和分析,可以优化生产效率和质量,降低成本和损失。
4、医疗健康:通过对医疗数据和健康管理数据的分析,可以帮助医疗机构和个人做出更准确的诊断和治疗决策,提高医疗水平和健康管理质量。
5、智慧城市:通过对城市各类数据的收集和分析,可以优化城市规划、交通管理、环境保护等领域,提高城市生活质量和公共服务水平。
6、人工智能:借助大数据技术,结合机器学习、自然语言处理等算法,实现人工智能应用,如智能客服、智能翻译、图像识别等。
BI报表
1、数据可视化:通过图表、仪表盘等方式,将数据转化为直观且易于理解的形式,快速识别数据趋势和关系。
2、自助查询和分析:BI 报表可以提供基于 Web 的自助查询和分析功能,让用户可以自行查询和分析特定数据,不需要 IT 支持。
3、预测和规划:基于历史数据和趋势分析,BI 报表可以为企业提供预测和规划支持,帮助企业做出更准确的业务决策。
4、实时监控和警报:通过 BI 报表,企业可以实时监控业务数据,及时发现异常情况并发送警报通知。
5、KPI 管理:BI 报表可以帮助企业定义关键绩效指标(KPI),并通过动态仪表盘或报表等方式进行跟踪和管理。
6、多维分析:BI 报表可以实现多维度的数据分析和交互,让用户可以更深入地了解业务和数据之间的关系。
智能推荐
1、个性化推荐:将用户的历史行为和兴趣进行分析和建模,根据用户的个性化需求和偏好,自动推荐最适合的商品和服务。
2、相似度推荐:基于物品或内容之间的相似度度量,找出与用户已浏览或购买的物品相似的其他物品,进行推荐。
3、热门推荐:基于大数据分析,发现当前最流行的商品和服务,根据热度和关联程度进行推荐。
4、社交网络推荐:利用社交网络中的社交图谱和关系,推荐用户可能感兴趣的朋友、社群和内容。
5、多维度推荐:基于多种因素,如价格、品牌、功能、评论等,综合考虑进行推荐,从而满足用户不同的需求。
用户画像
1、用户分类:根据用户的属性、行为和偏好等方面的数据,将用户进行分类和分群,以便企业可以更加针对性地进行营销和服务。
2、个性化推荐:基于用户画像,推荐最适合用户的商品和服务,提高用户购买和使用体验。
3、用户洞察:通过用户画像,发现用户的特点和痛点,了解用户需求和心理,从而优化产品设计和服务体验。
4、营销决策:通过用户画像,了解目标用户的属性、兴趣和需求,制定更有效的营销策略和计划。
5、风险控制:通过对用户画像的分析,预测用户的潜在风险和行为趋势,从而实现风险管理和控制。
6、客户关系管理:通过对用户画像的跟踪和更新,建立客户档案和关系管理系统,增强客户忠诚度和信任度。
网关层
访问控制
1、身份验证:对用户进行身份验证,以确定其是否有权访问特定数据或资源。身份验证可以基于用户名/密码、证书、双因素认证等方式进行。
2、授权:授权是指给予用户访问数据和资源的权限。在大数据系统中,授权通常基于角色或权限组进行管理,以简化授权过程并确保精细的权限管理。
3、安全审计:安全审计用于记录和跟踪用户对数据和资源的操作,以便发现潜在的安全问题。审计数据可以被用于监测和调查数据泄露、安全漏洞和未经授权的访问。
4、数据加密:数据加密用于对敏感数据进行保护,以防止其被未经授权的用户访问或泄露。加密可以基于数据的不同敏感级别进行分类,并使用合适的算法和密钥对其进行加密。
5、访问控制策略:访问控制策略定义了哪些用户可以访问数据和资源,以及他们能够进行的操作。访问控制策略通常基于角色、权限和数据敏感级别等因素进行编排。
安全控制
1、防火墙:在大数据系统和互联网之间设置防火墙,以控制网络流量、过滤非法访问和防止DDoS攻击等。
2、数据加密:对存储在大数据系统中的敏感数据进行加密,以确保其安全性和保密性。加密可以应用于数据传输、数据存储和数据处理等环节。
3、身份验证和访问控制:对用户进行身份验证,并且基于角色和权限限制他们能够访问和操作的数据和资源。
4、安全审计:记录和跟踪用户对数据和资源的操作,并监测潜在的安全问题和异常行为。
5、代码审查和漏洞扫描:通过对系统代码进行审查和漏洞扫描,发现和修复潜在的安全漏洞和风险。
6、实时监测和响应:对大数据系统进行实时监测,及时发现和应对潜在的安全威胁和攻击。
接口规范
1、使用标准的RESTful API设计原则,将资源、请求类型、响应状态码等都进行明确定义,以便于客户端与服务器的交互。
2、为每个API提供清晰的文档,包括API的功能、输入输出参数、请求示例及其它使用说明。
3、对API进行版本控制,以确保向后兼容性,并且在更改API时及时通知客户端。
4、在API请求中使用安全验证机制,例如OAuth或API密钥等,以确保数据的保密性和完整性。
5、限制API并发访问数量,以避免服务器过载,同时为高频率访问者提供缓存机制。
6、启用API日志记录和监控,以便于快速诊断问题和进行性能分析。
7、根据需求对API进行流量控制和QoS管理,以确保系统的稳定性和可靠性。
8、尽可能地遵循行业标准和最佳实践,以便于开发人员理解和使用API。
多协议访问
1、HTTP/HTTPS:这是最常见的协议之一,应用广泛,适用于 web 应用程序、移动应用程序等场景。
2、JDBC/ODBC:这是与数据库交互的标准协议,通常用于执行 SQL 查询和操作数据库。
3、FTP/SFTP:这是用于文件传输的标准协议,支持在不同计算机之间传输文件。
4、SSH:这是一种安全 shell 协议,用于通过网络远程管理计算机系统。
5、AMQP/RMQ:这是一种消息队列协议,用于异步处理任务和事件驱动型的应用。
分析层
即席查询
1、分布式数据库:将数据分片存储在不同的节点上,并且能够进行并行查询和处理,以提高查询速度和可扩展性。
2、列式存储:将数据按照列存储,以支持高效的聚合操作和压缩存储。
3、内存计算:利用内存数据库和缓存技术,将数据加速加载到内存中,并支持高速查询和分析。
4、SQL引擎:使用类似SQL的语言,将复杂的数据查询转化为简单的SQL查询操作。
5、数据可视化:使用图表、报表等方式将查询结果呈现给用户,以便于理解和分析。
算法模型
1、聚类分析:通过对数据进行聚类,将相似的数据点划分为同一组,以揭示数据之间的关系和结构。
2、关联规则挖掘:寻找数据之间的相关性和共现规律,例如市场篮子分析和交叉销售等领域。
3、决策树:基于数据特征的分类方法,常用于推荐系统、医学诊断等领域。
4、随机森林:由多个决策树构成的集成学习算法,可以提高模型的准确性和鲁棒性。
5、神经网络:一种基于生物神经系统的模型,能够在大规模数据上进行监督或非监督学习。
6、支持向量机:一种二分类模型,能够在高维空间中寻找最优超平面以实现分类。
7、深度学习:基于神经网络的模型,能够自动从数据中提取复杂的特征表示,例如卷积神经网络和循环神经网络。
数据仓库
ods数据采集层
Operation Data Store 数据准备区
真实业务数据,无etl过程
dwd数据明细层
data warehouse details 明细数据层
主要对ODS数据层做一些数据清洗和规范化的操作
数据清洗:去除空值、脏数据、超过极限范围的
dws数据服务层
data warehouse service 数据服务层
基于DWD上的基础数据,整合汇总成分析某一个主题域的服务数据层
ads数据应用层
applicationData Service应用数据服务
提供数据产品和数据分析使用的数据
一般会同步导出到mysql,es,pgsql供业务系统使用
分析旁路
Hive Sql
计算层
离线计算
适用于实时性要求不高的场景,比如离线报表、数据分析等
数据T+x延迟
常用计算方式
MapReduce
Spark SQL
批计算
实时计算
通常应用在实时性要求高的场景,比如实时ETL、实时监控等
数据毫秒级延迟
常用计算方式
Spark Streaming
Flink
流计算
混合式计算
还没接触过
存储层
结构化数据
关系型数据库为主
半结构化数据
非关系模型,但有基本固定结构模式的数据
日志文件
xml
json
非结构化数据
没有固定结构模式的数据
word
pdf
excel
视频
图片
总结
结构化、半结构化、非结构化其实是按照数据格式分类
严格讲,结构化与半结构化数据都是有基本固定结构模式的数据
半结构与非结构化数据与目前流行的大数据之间只是有领域重叠的关系,本质讲两者并无必然联系。
业界有将大数据认同为半结构/非结构化数据,是因为大数据技术最初是在半结构化数据领域发挥作用
其本质是将数据处理技术与数据格式混淆,是不正确的
其本质是将数据处理技术与数据格式混淆,是不正确的
采集层
数据采集
日志采集
flume
Logstash
数据库采集
Streamset
Debezium
DataX
传输媒介
kafka
互联网采集
python 爬虫
第三方对接
埋点数据
常见名词解释
etl
将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程
主题(域)
主题(Subject)是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观的分析领域。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。例如“销售分析”就是一个分析领域,因此这个数据仓库应用的主题就是“销售分析”。主题域是对某个主题进行分析后确定的主题的边界。
数据域
指面向业务分析,将业务过程或者维度进行抽象的集合。其中, 业务过程可以概括为一个个不可拆分的行为事件, 在业务过程之下, 可以定义指标;维度是指度量的环境,如买家下单事件,买家是维度。为保障整个体系的生命力, 数据域是需要抽象提炼,并且长期维护和更新的, 但不轻易变动。在划分数据域时, 既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。
业务板块
业务板块定义了数据仓库的多种命名空间,是一种系统级的概念对象。当数据的业务含义存在较大差异时,您可以创建不同的业务板块,让各成员独立管理不同的业务,后续数据仓库的建设将按照业务板块进行划分。
业务过程
指企业的业务活动事件,如下单、支付、退款都是业务过程。请注意,业务过程是一个不可拆分的行为事件, 通俗地讲,业务过程就是企业活动中的事件
业务限定
统计的业务范围,用于筛选出符合业务规则的记录(类似于SQL中where后的条件,不包括时间区间)。原子指标是计算逻辑的标准化定义,业务限定则是条件限制的标准化定义。
修饰类型
是对修饰词的一种抽象划分。修饰类型从属于某个业务域,如日志域的访问终端类型涵盖无线端、PC 端等修饰词
修饰词
指除了统计维度以外指标的业务场景限定抽象。修饰词隶属于一种修饰类型,如在日志域的访问终端类型下, 有修饰词PC 端、无线端等
统计粒度
统计分析的对象或视角,定义数据需要汇总的程度,可以理解为聚合运算时的分组条件(类似于SQL中group by的对象)。粒度是维度的一个组合,指明您的统计范围。例如,某个指标是某个卖家在某个省份的成交额,则粒度就是卖家、省份这两个维度的组合。如果您需要统计全表的数据,则粒度为全表。在指定粒度时,您需要充分考虑到业务和维度的关系。统计粒度也被称为粒度,是维度或维度组合,一般用于派生指标构建,是汇总表的唯一性识别方式。
指标
指标分为原子指标和派生指标。原子指标是对指标统计口径、具体算法的一个抽象
原生的原子指标
例如支付金额。
衍生原子指标
基于原子指标组合构建。例如,客单价通过支付金额除以买家数组合而来。
派生指标
派生指标=一个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标派生指标业务统计范围的圈定。
如原子指标:支付金额,最近l天海外买家支付金额则为派生指标(最近l 天为时间周期, 海外为修饰词, 买家作为维度,而不作为修饰词)
维度
维度是度量的环境,用来反映业务的一类属性, 这类属性的集合构成一个维度,维度也可以称为实体对象。
维度属于一个数据域,如地理维度(其中包括国家、地区、省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)
维度属性
维度属性隶属于一个维度, 如地理维度里面的国家名称、同家ID 、省份名称等都属于维度属性
OLTP
on-line transaction processing
主要是对数据的增删改
OLAP
On-Line Analytical Processing
对数据的查询
大数据测试
数据测试
一般指数据质量的测试,主要关注数据的完整性、准确性、一致性、及时性等。
数据合法性测试
数据格式
数据类型
数据值域
数据及时性测试
数据产生,消费,修改,提取,查询是否及时
数据唯一性测试
主键唯一
数据完整性测试
实体
属性
记录
字段值
数据一致性测试
数据准确性测试
平台产品测试
一般指使用Hadoop生态组件搭建的或自主研发的大数据系统,主要包括数据存储、计算、分析等组件。
BI报表
产品定位
将用户业务体系内部各种多源、异构、海量的数据以图形的方式呈现出来,让抽象的数据变得具象、直观,帮助用户更快地理解数据,为大脑减负,使用户从繁杂的数据分析中解放出来,更加专注于自有业务,使决策更具时效性和高回报性。
基础功能
数据准备
支持多种数据源连接配置使用
分类管理数据源
数据集管理
字段类型区分
维度
指标
脱敏规则
字段别名
组件设计
透视驱动
图表驱动
支持多种图表
数据管理
维度
指标
指标计算
加减乘除
if语句
聚合计算
sum
sumagg
筛选规则
样式管理
表头样式
单元格合并
背景色
字体
对齐
表格数据列
排序
背景色
条件样式
分页管理
配置管理
控制器
相当于过滤条件
自动加载数据
缓存管理
报表设计
配置多个组件
全局控制器
立即查询
手动查询
联动配置
多个组件之间的联动关系
报表管理
发布管理
权限管理
数据权限
报表数据
行列数据
数据治理
数据源管理
采集任务管理
任务
任务关联实例1:n
实例
采集配置
调度方式
周期调度
一次性调度
采集数据源
采集记录
调度任务管理
打包
源码打包
文件上传打包
发布
讲打包好的代码发布到azkaban
配置
调度规则
重试,超时配置
前后置依赖配置
数据源配置
增删查改
调度记录
任务详情
实时任务管理
实时jar包管理
实例管理
启动参数
运行日志
网关管理
采集网关
通过配置路由,进行不同数据源的采集
路由绑定应用进行权限控制
服务网关
通过配置路由,提供不同数据源的访问
通用接口
定制接口
通过sql查询数据库
查询es
查询redis
行列转换
查询opentsdb并进行聚合
模型管理
指标
维度
模型
标签管理
标签主题
标签定义
事实标签
业务标签
手工打标
数据质量
架构图
指标中心
数据分析
大数据测试平台
背景
数据湖
定义
数据湖是一个以原始格式存储数据的系统或存储库
数据湖通常是所有企业数据的单一存储。用于报告、可视化、高级分析和机器学习等任务
说明
原始格式
数据不做预处理,保存数据的原始状态
单一存储
存储库中会汇总多种数据源,是一个单一库
用于机器学习
除了BI、报表分析,数据与更适用于机器学习
包含数据
关系数据库的结构化数据
行和列
半结构化数据
csv
日志
xml
json
非结构化数据
电子邮件
文档
pdf
二进制数据
图像
音频
视频
与数据仓库对比
数据湖的应用场景主要在于机器学习,并且在用的时候再建Schema更加灵活
数据湖能够解决企业中机器学习应用方面的数据诉求,可以与数据仓库团队解耦。但并不意味着数据湖可以取代数据仓库,数据仓库在高效的报表和可视化分析中仍有优势
云厂家解决方案
阿里云
Data Lake Analytics
通过标准JDBC直接对阿里云OSS,TableStore,RDS,MongoDB等不同数据源中存储的数据进行查询和分析
DLA无缝集成割了商业分析工具,提供边界的数据可视化
阿里云OSS可以存储各种结构化、半结构化、非结构化的数据,可以当做一个数据湖的存储库
DLA使用前需要创建Schema、定义表,在进行后续分析
架构
(1)数据存储:采用OSS作为数据湖的集中存储吗可以支撑EB规模的数据湖,客户无需考虑存储量扩容,各类型数据可以统一存储
(2)数据湖管理:面对OSS数据开放性带来的管理及入湖困难,DLA中的Fomation组件具备元数据发现和一键建湖的能力吗,DLA提供Meta data catalog组件对于数据湖中数据资产进行统一的管理,无论数据是在“湖中”还是“湖外”,比如利用元数据爬取功能,可以一键创建OSS上的元数据信息,轻松自动识别CSV/JSON/Parquet等格式,建立好库表信息,方便后续计算引擎使用
(3)数据分析和计算:DLA提供了SQL计算引擎和Spark计算引擎两种。无论是SQL还是Spark引擎,都和Meta data catalog深度集成,能方便的获取元数据信息。局域Spark能力,DLA解决方案支持批处理、流处理和机器学习等计算模式
(4)在数据集成和开发:阿里云的数据湖解决方案提供两种选择:一种是采用dataworks完成;另一种是采用DMS完成。无论是选择哪种,都能对外提供可视化的流程编排、任务调度、任务管理能力。在数据生命周期管理上,dataworks的数据地图能力相对更加成熟。
华为云
DLI Serverless
亚马逊
Lake Formation
可以识别S3或关系数据库和NoSQL数据库中存储的现有数据,并将数据异动到S3数据湖中
使用EMR for Apache Spark,Redshift或Athena进行分析
微软
Azure Data Lake Storage
基于Azure Blob 存储构建的高度可缩放的安全Data Lake 功能
通过Azure DataBricks 对数据湖中的数据进行处理、分析
开源方案
kylo
基本上与云厂商的解决方案一致
支持多种数据源,分析时创建schema
传统行业四代架构
第一代:EDW架构
第一代数据仓库中,清洗地定义了数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策
第二代:大集市架构
主要核心
一致的维度,以进行集成和全面支持。一致的维度具有一致的描述属性名称、值和含义
一致的事实是一致定义的,如果不是一致的业务规则,那么将为其指定一个独特的名称。业务中相似的名称、不同系统的枚举值,相似的业务规则都需要做统一命名。
第三代:汇总维度集市&CIF2.0数仓结构
架构图
汇总维度集市的标准数仓结构
CIF2.0架构(归一化的数仓和维数据层仓库的混合)
包含组成
集成转换层
操作数据存储
数据仓库
数据集市
前台
负责数据展示
后台
负责数据准备
探索仓库
第四代:OPDM操作实时数仓
架构图
简介
OPDM操作型数据集市时实时数仓的一种,更多的是面向操作型数据而非历史数据查询与分析
比如财务系统、crm系统、营销系统,通过某一种机制实时的把这些数据在各数据孤岛按照业务的某个层次有机的自动化整合在一起,提供业务监控与指导
互联网六大架构
第一代:离线统计分析
与传统三代相似的区别
架构图
分层
应用数据层-ADS
存放数据产品个性化的统计指标数据,主要面向前端展示
汇总数据层-DWS
又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成子弹比较多的宽表采用更多的宽表化手段,构建公共指标数据层
轻度汇总层-DWM
对dwd层数据进行轻度综合和汇总统计(如根据PV日志生产的会话数据)
明细数据层-DWD
采用维度退化的方法,将维度退化到事实表中,减少事实表和维度表的关联,提高明细表的易用性
操作数据层-ODS
存储所有基础数据
预处理层-STAGING
存储每天增量数据,表和ods层表一致
维度表-DIM
高基数维度数据
一般是用户资料,商品资料类似的资料表。数据量可能是千万或者上亿的级别
低基数维度数据
一般是配置表,枚举值对应中文标,日期表。数据量一般是个位数或者几千万
数据来源层
业务数据
埋点数据
日志数据
其他
简介
解决传统BI问题
优点
简单易懂,对BI系统基本思想没变,变得仅仅是技术选型,用大数据架构替换掉BI组件
缺点
对大数据来说,没有BI下完备的CUBE架构,虽然有kylin,但比较局限,对业务支持灵活度不够,对存在大量报表或复杂的场景,需要太多的手工定制化,同时该架构依旧以批处理为主,缺乏实时的支撑
适用场景
数据分析需求依旧以BI场景为主,但是因为数据了性能问题无法满足日常使用
第二代:流式架构
架构图
简介
流式的应用场景非常广泛,比如搜索、推荐、信息流等都是在线化的,对数据实时性的要求更高,自然计算与使用是同步进行的
随着业务的复杂化,数据的处理逻辑更加复杂,比如各种维度交叉、关联、聚类,以及需要更多算法或机器学习
与第一代的大数据处理框架相比,去掉了原有的etl过程,数据流过数据通道时得到处理,处理结果通过消息的方式推送给消费者
优点
没有臃肿的etl过程,数据的时效性非常快
缺点
不存在批处理,因为对数据的重放和历史统计无法很好的支撑,对于离线分析进入支撑窗口之内的分析
适用场景
事件流、持续计算。事件流就是业务相对固定,只是数据在业务的规则下不断的变化。
持续计算,适合购物网站等场景
预警、监控、对数据有实时性要求的场景
第三代:Lambda
架构图
简介
Lambda架构是由Twitter工程师剔除的,是一种经典的、实施广泛的技术架构。后来出现的其他大数据架构也是Lambda架构的优化或升级版
Lambda架构的两条数据链路
批量离线处理流在构件时大部分还是采用一些经典的大数据统计分析方法论,在保证数据一致性、完整性的同时还会对数据按照不同应用场景进行分层。
实时流式处理主要是增量计算,也会跑一些机器学习模型等。为了保证数据的一致性,实时流处理结果与批量处理结果会有一个合并动作
Lambda 架构主要组成
批处理层(Bathch layer)
Lambda架构核心层之一,批处理接收过来的数据,并保存到相应的数据模型中,这一层的数据主题、模型设计的方法论是继承面向统计分析离线大数据中的。而且一般会按照比较经典的ODS、DWD、DWB、ST/ADM的层次结构来划分。
流式处理层(Speed Layer)
Lambda另一个核心层,为了解决比如各场景下数据需要以便计算一边应用以及各种维度交叉、关联的事件流与持续计算的问题,计算结果在最后与批处理层的结果做合并。
服务处(Serving layer)
Lambda架构最后一层,服务层的职责是获取批处理和流处理的结果,向用户提供统一查询视图服务。
优点
既有实时又有离线,对数据分析场景涵盖得非常到位
缺点
数据口径不一致
因为离线和实时计算走的是两个完全不同的代码,算出来的结果往往不同,可能会当天看到一个结果数据,第二天发现数据变成另一个结果
T+1离线严重超时
像weibo这种体量的公司,每天有400TB+的数据写入大数据平台,而且数据在不断地增加。我们经常会发现在夜间3-4小时内,离线程序没有跑完,不能保证数据在上班之前准时生成。尤其是夜间发生故障之后,白天数据产出时间更难把控。
需要维护两套代码
每次数据源有变化,或者业务方面有新的需求,都需要修改两次业务逻辑代码,既要修改离线的etl任务,又要修改流式任务,开发周期很长(工作量是双倍)。人力成本较大
适用场景
同时存在实时和离线需求的业务
第四代:Kappa
架构图
与lambda架构对比
OLAP主流引擎
简介
解决在Lambda架构下需要维护两套代码的问题
Kappa架构核心是通过改进流式计算架构的计算、存储部分来解决全量的问题,使得实时计算、批处理可以共用一套代码
Kappa架构认为对于历史数据的重复计算几率是很小的,即使需要,可以通过启用不同的实例来做重复计算
核心思想
用Kafka或者类似MQ队列系统收集各种各样的数据,需要几天的数据量就保存几天。
当需要全量重新计算时,重新起一个流计算实例,从头开始读取数据进行处理,并输出到一个新的结果存储中。
当新的实例做完后,停止老的流计算实例,并把一些老的结果删除。
优点
解决了lambda架构的冗余部分,以数据可重播的超凡脱俗的思想进行了设计,整个架构非常简洁
Lambda 架构需要维护两套泡在批处理和实时流上的代码,两个结果还需要做merge,Kappa架构下只维护一套代码,在需要的时候才跑全量数据。
Kappa架构下可以同时启动很多实例来做重复计算,有利于算法模型调整优化与结果对比,Lambda架构下,代码调整比较复杂。所以kappa架构下,技术人员只需要维护一个框架就可以,成本很小
缺点
Kappa 每次接入新的数据类型格式是需要定制开发接入程序,接入周期较长。
Kappa 架构过度依赖于Redis、Hbase服务,两种存储结构又不是满足全力数据存储,用来做全量存储会显得浪费资源。
适用场景
同Lambda
第五代:Unified
架构图
简介
Unified在Lambda基础上进行升级,在流处理层新增了机器学习层
数据经过数据通道进入数据湖,新增了模型训练部分,并且将其在流式层进行使用,同事流式层不单使用模型,也包含着对模型的储蓄训练
优点
提供一套数据分析和机器学习结合的结构方案,非常好的解决了机器学习如何与数据平台进行结合的问题
缺点
实施复杂度更高,对于机器学习架构来说,从软件包到硬件部署都和数据分析平台有非常大的差别,实施难度系数更高
适用场景
有这大量数据需要分析,同时对机器学习方面又有非常大的需求或者规划
第六代:IOTA
简介
基于AI生态下的全新的数据架构模式
IOAT的整体思路是设定标准数据模型,通过边缘计算把所有的计算过程分散在数据产生,以统计的数据模型贯穿始终,从而提高整体的结算效率,同事满足计算的需要,可以使用各种ad-hoc Query 来查询底层数据
特点
去ETL
ETL和相关开发一直是大数据处理的痛点,IOTA架构通过Common Data Model的设计,专注在某一个具体领域的数据计算,从而可以从SDK端开始计算,中央端只做采集、建立索引和查询,提高整体数据分析的效率。
Ad-hoc 即席查询
监狱整体的计算流程机制,在手机端,智能IOT时间发生之时,就可以直接传送到云端进入 real time data 区,可以被前端QUery Engine来查询。此时用户可以使用各种各样的查询,直接插到前几秒的时间,而不用等待etl或者streaming的数据研发和处理。
边缘计算
将过去统一到中央进行整体计算,分散到数据产生、存储和查询端,数据产生既符合Common Data Model。同时,也给与Realtime model feedback,让客户端传送数据的同时马上进行反馈,而不需要所有事件都要到中央端处理之后再进行下发。
优点
去ETL话、支持Ad-hoc 即席查询和边缘计算
缺点
代码漏洞较多,通过收费方式向社区提供漏洞修复代码
适用场景
用于物联网设备,实现万物互联,系统自治
架构设计方法论
离线数仓体系
关系型数据库
E-R实体关系模型
数仓发展过程
建模方式
维度建模
数据模型
数仓分层
每层的作用列举
设计规范
技术选型
实时数仓体系
架构演变
Lambda架构
Kappa架构
混合架构
实时数仓发展方向
大长案例
数据治理
数据质量管理
元数据管理
主数据管理
数据交换
数据安全
数据生命周期管理
Atlas
Ranger
Kerberos
数据可视化
SUperset
Hue
DataV
Sugar
帆软BI
TCV
PowerBi
0 条评论
下一页