2026/4/14 14:01:20
网站建设
项目流程
什么网站可以免费做视频软件,做网站要用到数据库吗,thinkphp2.1网站挂文件,360推广开户1. 前端 (FrontEnd)
APP: 应用程序#xff0c;用户通过手机或电脑上的应用程序与系统交互。Web Page: 网页#xff0c;用户通过浏览器访问的网页界面。H5: HTML5#xff0c;一种网页技术#xff0c;用于构建动态和交互式的网页内容。Landing page: 登陆页面#xff0c;用…1. 前端 (FrontEnd)APP: 应用程序用户通过手机或电脑上的应用程序与系统交互。Web Page: 网页用户通过浏览器访问的网页界面。H5: HTML5一种网页技术用于构建动态和交互式的网页内容。Landing page: 登陆页面用户首次访问时看到的页面通常用于引导用户进行下一步操作。2. 后端 (Backend)业务模块 (Business Module)User Management Module: 用户管理模块处理用户注册、登录、个人信息管理等功能。Order Management Module: 订单管理模块处理订单创建、修改、查询等操作。Payment Module: 支付模块处理支付流程包括支付方式选择、支付确认等。Delivery Module: 配送模块处理配送相关的业务如配送地址管理、配送状态更新等。Menu Management Module: 菜单管理模块管理商品或服务的菜单信息。Restaurant Management Module: 餐厅管理模块针对餐饮行业的业务管理如餐厅信息管理、菜品管理等。Marketing Module: 营销模块处理营销活动、促销信息等。Search and Recommendation Module: 搜索和推荐模块提供搜索功能和个性化推荐服务。API Gateway (Interface Service Module): API网关接口服务模块作为系统的统一入口负责请求的路由、协议转换、安全控制等。存储组件 (Storage components)Cache (Redis, Memcached): 缓存Redis, Memcached用于存储频繁访问的数据提高访问速度。RDBMS (PostgreSQL, MySQL): 关系型数据库管理系统PostgreSQL, MySQL用于存储结构化数据。Message Queues (RabbitMQ, Kafka): 消息队列RabbitMQ, Kafka用于异步通信和解耦系统组件。NoSQL (MongoDB, HBase): 非关系型数据库MongoDB, HBase用于存储大规模的非结构化或半结构化数据。Search Engines (Elasticsearch): 搜索引擎Elasticsearch提供全文搜索和数据分析功能。Content Delivery Networks: 内容分发网络用于加速静态资源的分发。3. 日志收集 (Log Collection)CDC (Changed Data Capture): 变更数据捕获用于实时捕获数据库中的数据变更。Canal: 一种开源的CDC工具。Flink CDC: 基于Apache Flink的CDC解决方案。Debezium: 一种开源的CDC框架。Sqoop: 用于在Hadoop和关系型数据库之间传输数据的工具。Logging Server: 日志服务器用于收集和存储系统日志。Message Queue (Kafka): 消息队列Kafka用于日志的异步传输和处理。4. 分布式存储 (Distributed Storage)Offline DW (S3/HDFS/HBase/DataLake): 离线数据仓库S3/HDFS/HBase/DataLake用于存储和处理离线数据。Real-time DW (Kafka/Clickhouse/DataLake): 实时数据仓库Kafka/Clickhouse/DataLake用于存储和处理实时数据。5. 查询引擎 (Query Engine)Hive: 一种数据仓库工具用于处理大规模数据集。Impala/Greenplum: 实时查询引擎提供快速的数据查询和分析能力。Clickhouse: 一种列式数据库适用于实时数据分析。Doris(StarRocks): 一种高性能的分布式分析型数据库。Kylin: 一种开源的分布式分析引擎适用于大规模数据集的多维分析。Presto (Only Computer): 一种分布式SQL查询引擎适用于大规模数据集的快速查询。Druid (Only Computer): 一种实时数据分析系统适用于实时数据的聚合和查询。Spark (Only Computer): 一种通用的分布式计算框架适用于大规模数据处理和分析。6. 可视化仪表盘 (Visualization Dashboard)Superset: 一种开源的数据探索和可视化平台。Tableau: 一种商业智能和数据分析工具提供丰富的可视化功能。Microsoft Power BI: 一种商业智能工具用于数据可视化和分析。Self built (Echarts): 自建的可视化工具基于Echarts库开发。针对查询引擎的扩展详细分类与解释1. 批处理引擎Batch Processing这类引擎擅长处理海量数据但延迟较高不适合交互式查询。Hive 是Hadoop生态的元老。它通过将SQL翻译成MapReduce/Tez/Spark作业来运行。优势是稳定、容错性好、生态成熟。劣势是延迟非常高因为中间结果要写磁盘。适用于今天分析昨天数据的“T1”离线场景。Spark SQL 是Spark生态的组件。它利用内存计算和DAG执行引擎比Hive快一个数量级。它不仅是查询引擎更是通用的分布式计算框架可以无缝衔接ETL、流处理、机器学习等任务。2. MPP引擎大规模并行处理这类引擎将任务并行化分配到多个节点同时执行专为低延迟、交互式查询设计。Presto 由Facebook开发。它不依赖MapReduce而是纯MPP架构数据在内存中管道化传输延迟很低。最大的特点是联邦查询可以一条SQL查询Hive、Kafka、MySQL、Redis等多种数据源。但它只是一个查询引擎不负责数据存储和管理。Doris / StarRocks 是近年来非常流行的新一代MPP分析型数据库。它集存储和计算于一体架构简单无需依赖Hadoop系列组件性能极其出色。它在高并发点查询数千QPS和复杂SQL查询方面都有很好表现是许多公司构建实时数仓的首选。ClickHouse 由Yandex开发。它最大的优势是单表查询性能在压缩比和向量化执行引擎上做到了极致特别适合对单张海量表进行聚合过滤。但它的短板是多表JOIN性能较弱对事务支持有限。非常适合日志、点击流等宽表分析。Impala / Greenplum 是更早期的MPP方案。Impala与Hadoop生态紧密集成类似于Presto。Greenplum是基于PostgreSQL的MPP数据仓库功能完备但架构相对较重在云原生时代面临新引擎的挑战。3. 预计算与特殊场景引擎这类引擎通过牺牲灵活性来换取极致的查询性能。Kylin 核心思想是“空间换时间”。它在数据导入阶段就根据预定义的维度Cube计算出所有可能的聚合结果。查询时直接返回结果速度极快。但一旦业务需求变更如增加维度需要重新构建Cube灵活性很差。适用于指标和维度固定的固化报表。Druid 专为时序数据和事件数据优化。它支持实时数据摄入并自动对数据进行预聚合Roll-up非常适合做实时监控大盘。它能承受极高的查询并发但复杂查询能力不如通用的MPP引擎。如何选择选择哪个查询引擎取决于你的具体需求做T1的离线ETL和报表-Hive或Spark如果对速度有要求。需要交互式地探索数据且数据源多样-Presto。构建高并发的实时报表系统要求低延迟且架构简单-Doris / StarRocks。分析海量的用户行为日志或事件数据主要是单表聚合-ClickHouse。需要做实时监控查询QPS要求极高-Druid。业务指标固定要求亚秒级响应的固定报表-Kylin。在实际的大数据平台中这些引擎常常是共存和互补的共同组成一个Lambda架构或数据湖仓一体架构现代企业级数据平台几乎都是多种查询引擎乃至更广泛的数据处理组件的结合体。这种结合不是为了替代而是为了互补以构建一个能够满足不同业务场景、不同数据延迟要求、不同成本考量的统一数据平台。这种结合的核心思想是将正确的工具用于正确的场景。下面通过几个关键维度来阐述它们是如何结合的1. 按数据处理流程结合Lambda / Kappa 架构思想这是最常见的结合方式根据数据产生、处理到消费的整个生命周期在不同阶段使用不同的引擎。典型流程实时数据流数据源应用日志、数据库变更CDC、用户点击流。引擎/组件Kafka消息队列作为实时数据总线。处理Flink或Spark Streaming进行实时ETL、数据清洗、聚合形成实时流。批量数据导入数据源业务数据库MySQL, PostgreSQL的日终快照、传统ETL文件。引擎/组件Sqoop、DataX将数据批量导入数据湖/仓。处理Spark或Hive进行复杂的、批量的数据清洗、转换和整合T1作业。数据存储与分层原始层/数据湖ODS存储在HDFS或S3上由Hive管理元数据。明细层/轻度汇总层DWD/DWS经过清洗和轻度聚合的数据可能存储在HDFS/S3由Hive/Spark管理或直接导入到ClickHouse/Doris中以获得更快的查询速度。应用层/集市层ADS为特定业务场景高度聚合的数据存储在Doris、ClickHouse、Redis或关系型数据库中供应用直接调用。数据查询与服务交互式即席查询分析师使用Presto或Trino直接查询数据湖HDFS/S3中的数据探索原始或轻度汇总的数据避免数据移动。高性能OLAP分析面向高并发、低延迟的报表和BI系统将数据导入Doris或StarRocks利用其MPP架构提供极速查询体验。超高并发点查与监控实时监控大盘、用户行为分析等场景使用ClickHouse或Druid。固化报表对固定维度的报表使用Kylin进行预计算实现亚秒级响应。2. 按业务场景结合多引擎并存一个成熟的企业数据平台会同时运行多个引擎由不同的业务团队或应用按需调用。3. 技术上的互补性结合Presto Hive这是经典的“解耦”组合。Presto负责高性能查询而Hive仅作为元数据仓库Hive Metastore。Presto通过读取Hive的元数据来理解存储在HDFS或S3上的数据结构和位置。这样数据存储和计算能力就分开了。Spark 所有其他引擎Spark作为强大的数据加工厂可以读取Hive、HBase、Kafka中的数据进行复杂的ETL处理然后将结果输出到Doris、ClickHouse、Elasticsearch等任何适合查询的引擎中。它扮演着数据搬运和转换的核心角色。数据湖仓一体Data Lakehouse这是当前的主流趋势。以Apache Iceberg、Hudi、Delta Lake等表格式为基础在数据湖S3/HDFS之上提供类似数据仓库的管理能力和事务支持。在这种情况下Spark、Flink用于数据写入和加工而Trino、Spark、Doris都可以作为查询引擎直接查询这些开放格式的数据实现了批流一体、存算分离的现代化架构。总结在企业应用中将这些查询引擎结合起来可以构建一个层次清晰、分工明确、弹性可扩展的数据架构Hive/Spark作为可靠的批处理和数据管理基石。Flink作为实时处理的骨干。Presto/Trino作为数据探索和联邦查询的瑞士军刀。Doris/StarRocks、ClickHouse、Druid作为面向最终应用和用户的高性能专业化查询终端。这种“组合拳”的方式确保了企业能够以合理的成本高效地应对从离线到实时、从探索到服务、从低并发到高并发的全方位数据挑战。