做网站实验体会,wordpress的网站怎样添加地图坐标,企业门户网站建设内容,单位如何做网站宣传#x1f680; 优质资源分享 #x1f680;
学习路线指引#xff08;点击解锁#xff09;知识定位人群定位#x1f9e1; Python实战微信订餐小程序 #x1f9e1;进阶级本课程是python flask微信小程序的完美结合#xff0c;从项目搭建到腾讯云部署上线#xff0c;打造一… 优质资源分享
学习路线指引点击解锁知识定位人群定位 Python实战微信订餐小程序 进阶级本课程是python flask微信小程序的完美结合从项目搭建到腾讯云部署上线打造一个全栈订餐系统。Python量化交易实战入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
概述
背景 Apache Doris官方地址 https://doris.apache.org/ Apache Doris GitHub源码地址 https://github.com/apache/incubator-doris Apache Doris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果有效地支持实时数据分析。Apache Doris的分布式架构非常简洁易于运维并且可以支持10PB以上的超大数据集。Apache Doris可以满足多种数据分析需求例如固定历史报表实时数据分析交互式数据分析和探索式数据分析等。令您的数据分析工作更加简单高效 Doris 最早是解决百度凤巢统计报表的专用系统随着百度业务的飞速发展对系统进行了多次迭代逐渐承担起百度内部业务的统计报表和多维分析需求。2013 年百度把 Doris 进行了 MPP 框架的升级并将新系统命名为 Palo 2017 年以百度 Palo 的名字在 GitHub 上进行了开源2018 年贡献给 Apache 基金会时由于与国外数据库厂商重名因此选择用回最初的名字这就是 Apache Doris 的由来。之后在美团 小米 字节跳动 京东等互联网企业被适用于核心业务实时数据分析。Apache Doris 与 Clickhouse 都是 MPP 数据库领域的优秀产品各自擅长的领域或适用的场景存在差异所有用户可以基于技术认知和业务需求来抉择到底该选择哪一款产品甚至在大多场景里两者是可以并存和相互补足的。2020 年 2 月百度 Doris 团队的个别同学离职创业基于 Apache Doris 之前的版本做了自己的商业化闭源产品 DorisDB 这就是 StarRocks 的前身。DorisDB升级为StarRocks并全面开源。
定义 StarRocks官网地址 https://www.starrocks.com/zh-CN/index 目前最新版本为2.2.0 StarRocks官网文档地址 https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro StarRocks GitHub源码地址 https://github.com/StarRocks/starrocks StarRocks是新一代极速全场景MPP数据库。StarRocks充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果在业界实践的基础上进一步改进优化、升级架构并增添了众多全新功能形成了全新的企业级产品。StarRocks致力于构建极速统一分析体验满足企业用户的多种数据分析场景支持多种数据模型(明细模型、聚合模型、更新模型)多种导入方式批量和实时支持导入多达10000列的数据可整合和接入多种现有系统(Spark、Flink、Hive、 ElasticSearch)。StarRocks兼容MySQL协议可使用MySQL客户端和常用BI工具对接StarRocks来进行数据分析。StarRocks采用分布式架构对数据表进行水平划分并以多副本存储。集群规模可以灵活伸缩能够支持10PB级别的数据分析; 支持MPP框架并行加速计算; 支持多副本具有弹性容错能力。StarRocks采用关系模型使用严格的数据类型和列式存储引擎通过编码和压缩技术降低读写放大使用向量化执行方式充分挖掘多核CPU的并行计算能力从而显著提升查询性能。
发布路线
这个是StarRocks2021年前规划现在最新版本已为2.2.0 特性
架构精简StarRocks内部通过MPP计算框架完成SQL的具体执行工作。MPP框架本身能够充分的利用多节点的计算能力整个查询并行执行从而实现良好的交互式分析体验。 StarRocks集群不需要依赖任何其他组件易部署、易维护极简的架构设计降低了StarRocks系统的复杂度和维护成本同时也提升了系统的可靠性和扩展性。 管理员只需要专注于StarRocks系统无需学习和管理任何其他外部系统。全面向量化引擎StarRocks的计算层全面采用了向量化技术将所有算子、函数、扫描过滤和导入导出模块进行了系统性优化。通过列式的内存布局、适配CPU的SIMD指令集等手段充分发挥了现代CPU的并行计算能力从而实现亚秒级别的多维分析能力。智能查询优化StarRocks通过CBO优化器(Cost Based Optimizer)可以对复杂查询自动优化。无需人工干预就可以通过统计信息合理估算执行成本生成更优的执行计划大大提高了Adhoc和ETL场景的数据分析效率。联邦查询StarRocks支持使用外表的方式进行联邦查询当前可以支持Hive、MySQL、Elasticsearch三种类型的外表用户无需通过数据导入可以直接进行数据查询加速。高效更新StarRocks支持多种数据模型其中更新模型可以按照主键进行upsert/delete操作通过存储和索引的优化可以在并发更新的同时实现高效的查询优化更好的服务实时数仓的场景。智能物化视图StarRocks支持智能的物化视图。用户可以通过创建物化视图预先计算生成预聚合表用于加速聚合类查询请求。StarRocks的物化视图能够在数据导入时自动完成汇聚与原始表数据保持一致。并且在查询的时候用户无需指定物化视图StarRocks能够自动选择最优的物化视图来满足查询请求。标准SQLStarRocks支持标准的SQL语法包括聚合、JOIN、排序、窗口函数和自定义函数等功能。StarRocks可以完整支持TPC-H的22个SQL和TPC-DS的99个SQL。此外StarRocks还兼容MySQL协议语法可使用现有的各种客户端工具、BI软件访问StarRocks对StarRocks中的数据进行拖拽式分析。流批一体StarRocks支持实时和批量两种数据导入方式支持的数据源有Kafka、HDFS、本地文件支持的数据格式有ORC、Parquet和CSV等支持导入多达10000列的数据。StarRocks可以实时消费Kafka数据来完成数据导入保证数据不丢不重exactly once。StarRocks也可以从本地或者远程HDFS批量导入数据。高可用易扩展StarRocks的元数据和数据都是多副本存储并且集群中服务有热备多实例部署避免了单点故障。集群具有自愈能力可弹性恢复节点的宕机、下线、异常都不会影响StarRocks集群服务的整体稳定性。 StarRocks采用分布式架构存储容量和计算能力可近乎线性水平扩展。StarRocks单集群的节点规模可扩展到数百节点数据规模可达到10PB级别。 扩缩容期间无需停服可以正常提供查询服务。 另外StarRocks中表模式热变更可通过一条简单SQL命令动态地修改表的定义例如增加列、减少列、新建物化视图等。同时处于模式变更中的表也可也正常导入和查询数据。
使用场景
StarRocks可以满足企业级用户的多种分析需求包括OLAP多维分析、定制报表、实时数据分析和Ad-hoc数据分析等。具体的业务场景包括
OLAP多维分析 用户行为分析用户画像、标签分析、圈人高维业务指标报表自助式报表平台业务问题探查分析跨主题业务分析财务报表系统监控分析 实时数据分析 电商大促数据分析教育行业的直播质量分析物流行业的运单分析金融行业绩效分析、指标计算广告投放分析管理驾驶舱探针分析APMApplication Performance Management 高并发查询 广告主报表分析零售行业渠道人员分析SaaS行业面向用户分析报表Dashbroad多页面分析 统一分析 通过使用一套系统解决多维分析、高并发查询、预计算、实时分析、Adhoc查询等场景降低系统复杂度和多技术栈开发与维护成本。
与其他分析层数仓框架对比其极速统一架构如下 与Flink生态对接 基本概念和架构
系统架构图 组件介绍
StarRocks 集群由 FE 和 BE 构成 可以使用 MySQL 客户端访问 StarRocks 集群。
FrontEnd
简称 FE是 StarRocks 的前端节点负责管理元数据管理客户端连接进行查询规划查询调度等工作。FE 接收 MySQL 客户端的连接 解析并执行 SQL 语句。
管理元数据 执行 SQL DDL 命令 用 Catalog 记录库 表分区tablet 副本等信息。FE 的 SQL layer 对用户提交的 SQL 进行解析分析 改写 语义分析和关系代数优化 生产逻辑执行计划。FE 的 Planner 负责把逻辑计划转化为可分布式执行的物理计划分发给一组 BE。FE 监督 BE管理 BE 的上下线 根据 BE 的存活和健康状态 维持 tablet 的副本的数量。FE 协调数据导入 保证数据导入的一致性。FE 高可用部署使用复制协议选主和主从同步元数据, 所有的元数据修改操作由 FE leader 节点完成 FE follower 节点可执行读操作。 元数据的读写满足顺序一致性。FE 的节点数目采用 2n1可容忍 n 个节点故障。当 FE leader 故障时从现有的 follower 节点重新选主完成故障切换。
BackEnd
简称 BE是 StarRocks 的后端节点负责数据存储计算执行以及 compaction副本管理等工作。
BE 管理 tablet 的副本。BE 受 FE 指导 创建或删除 tablet。BE 接收 FE 分发的物理执行计划并指定 BE coordinator 节点在 BE coordinator 的调度下与其他 BE worker 共同协作完成执行。BE 读本地的列存储引擎获取数据 并通过索引和谓词下沉快速过滤数据。BE 后台执行 compact 任务减少查询时的读放大。数据导入时 由 FE 指定 BE coordinator 将数据以 fanout 的形式写入到 tablet 多副本所在的 BE 上。
其他组件
Broker
Broker 是 StarRocks 和 HDFS 对象存储等外部数据对接的中转服务辅助提供导入导出功能如需使用 broker loadspark load备份恢复等功能需要安装启动 Broker。
Hdfs Broker: 用于从 Hdfs 中导入数据到 StarRocks 集群详见 数据导入 章节。
StarRocksManager
StarRocksManager 是 StarRocks 企业版提供的管理工具通过 Manager 可以可视化的进行 StarRocks 集群管理、在线查询、故障查询、监控报警、可视化慢查询分析等功能。
手动部署
环境支持
集群节点需要以下环境支持
Linux (Centos 7)推荐 Oracle Java 1.8CPU 需要支持 AVX2 指令集ulimit -n 配置 65535启动脚本会自动设置需要启动的用户有设置 ulimit -n 权限集群时钟需同步网络需要万兆网卡和万兆交换机
通过 cat /proc/cpuinfo |grep avx2 命令查看节点配置有结果则 cpu 支持 AVX2 指令集。 测试集群建议节点配置BE 推荐 16 核 64GB 以上FE 推荐 8 核 16GB 以上。建议 FEBE 独立部署。
系统参数配置建议
关闭交换区消除交换内存到虚拟内存时对性能的扰动。
echo 0 | sudo tee /proc/sys/vm/swappiness
建议使用 Overcommit把 cat /proc/sys/vm/overcommit_memory 设成 1。
echo 1 | sudo tee /proc/sys/vm/overcommit_memory
部署
部署规划
服务器IP服务器角色192.168.5.52FE、BE、Broker192.168.5.53BE、Broker192.168.12.28BE、Broker
下载
# 从官网下载
wget https://www.starrocks.com/zh-CN/download/request-download/22/StarRocks-2.2.0-rc01.tar.gz
# 下载的安装包可直接解压后进行安装部署
tar -xvf StarRocks-2.2.0-rc02.tar.gz 查看FE目录结构 查看BE目录结构 部署FE
FE 的基本配置 FE 的配置文件为 fe/conf/fe.conf 此处仅列出其中 JVM 配置和元数据目录配置生产环境可参考 FE 参数配置 对集群进行详细优化配置。
cd StarRocks-2.2.0-rc02/fe
# 第一步: 配置文件 conf/fe.conf
vi conf/fe.conf
# 元数据目录
meta_dir ${STARROCKS_HOME}/meta
# JVM配置
JAVA_OPTS -Xmx8192m -XX:UseMembar -XX:SurvivorRatio8 -XX:MaxTenuringThreshold7 -XX:PrintGCDateStamps -XX:PrintGCDetails -XX:UseConcMarkSweepGC -XX:UseParNewGC -XX:CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction80 -XX:SoftRefLRUPolicyMSPerMB0 -Xloggc:$STARROCKS_HOME/log/fe.gc.log
# 由于我本机有很多网卡通信网段为192.168.0.0因此配置如下
priority_networks 10.10.10.0/24;192.168.0.0/16
可以根据 FE 内存大小调整-Xmx8192m为了避免 GC 建议 16G 以上StarRocks 的元数据都在内存中保存。
# 第二步: 创建元数据目录需要与 fe.conf 中配置路径保持一致:
mkdir -p meta
# 第三步: 启动 FE 进程:
bin/start_fe.sh --daemon
# 第四步: 确认启动 FE 启动成功。
查看日志 log/fe.log 确认。 如果 FE 启动失败可能是由于端口号被占用可修改配置文件 conf/fe.conf 中的端口号 http_port。使用 jps 命令查看 java 进程确认 “StarRocksFe” 存在。使用浏览器访问 FE ip:http_port默认 8030打开 StarRocks 的 WebUI 用户名为 root 密码为空。
访问 StarRocks 的 WebUIhttp://192.168.5.52:8030 使用 MySQL 客户端访问 FE这里默认 root 用户密码为空端口为 fe/conf/fe.conf 中的 query_port 配置项默认为 9030查看 FE 状态是正常 通过SQLyog的第三方MySQL客户端连接和查询结果 部署BE
BE 的基本配置:BE 的配置文件为 be/conf/be.conf默认配置即可启动集群生产环境可参考 BE 参数配置对集群进行详细优化配置。
BE 部署:通过以下命令启动 be 并添加 be 到 StarRocks 集群 一般至少在三个节点部署 3 个 BE 实例 每个实例的添加步骤相同。
# 进入be的安装目录
cd StarRocks-2.2.0-rc02/be
# 第一步: 创建数据目录当前设置为 be.conf 中默认 storage\_root\_path 配置项路径
# 创建数据存储目录
mkdir -p storage
# 第二步: 通过 mysql 客户端添加 BE 节点host 为与 priority\_networks 设置相匹配的 IPport 为 BE 配置文件中的 heartbeat\_service\_port默认为 9050。
mysql ALTER SYSTEM ADD BACKEND 192.168.5.52:9050;
如出现错误需要删除 BE 节点可通过以下命令将 BE 节点从集群移除host 和 port 与添加时一致具体参考 扩容缩容。
mysql ALTER SYSTEM decommission BACKEND host:port;
# 第三步: 启动 BE
bin/start_be.sh --daemon
# 第四步: 查看 BE 状态, 确认 BE 就绪: 显示isAlive 为 true则说明 BE 正常接入集群。如果 BE 没有正常接入集群请查看 log 目录下的 be.WARNING 日志文件确定原因。
如果日志中出现类似backend ip saved in master does not equal to backend local ip127.0.0.1 vs. 192.168.5.22的信息说明 priority_networks 的配置存在问题。此时需要先用以下命令 drop 掉原来加进去的 be然后重新以正确的 IP 添加 BE。
mysql ALTER SYSTEM DROPP BACKEND 192.168.5.22:9050;
由于是初次启动如果在操作过程中遇到任何意外问题都可以删除并重新创建 storage 目录再从头开始操作。
其他两台是相同部署方式由于192.168.12.28上8040和8060端口已经被占用所以配置文件的端口信息
启动192.168.12.28的BE查看 启动192.168.5.52的BE查看 部署Broker
配置文件为 apache_hdfs_broker/conf/apache_hdfs_broker.conf 注意Broker 没有也不需要 priority_networks 参数Broker 的服务默认绑定在 0.0.0.0 上只需要在 ADD BROKER 时填写正确可访问的 Broker IP 即可。 如果有特殊的 hdfs 配置复制线上的 hdfs-site.xml 到 conf 目录下
启动 broker
cd StarRocks-2.2.0-rc02/apache_hdfs_broker
bin/start_broker.sh --daemon
添加 broker 节点到集群中,查看 broker 状态
mysql 查看 broker 状态 继续部署其他两个broker三个broker的状态都是正常 实战使用
表创建示例
# 使用 root 用户建立 example\_db 数据库
mysql create database example\_db;
# 通过 show databases; 查看数据库信息
mysql show databases; 通过官方提供建表脚本创建表
CREATE TABLE IF NOT EXISTS detailDemo (make_time DATE NOT NULL COMMENT YYYY-MM-DD,mache_verson TINYINT COMMENT range [-128, 127],mache_num SMALLINT COMMENT range [-32768, 32767] ,de_code INT COMMENT range [-2147483648, 2147483647],saler_id BIGINT COMMENT range [-2^63 1 ~ 2^63 - 1],pd_num LARGEINT COMMENT range [-2^127 1 ~ 2^127 - 1],pd_type CHAR(20) NOT NULL COMMENT range char(m),m in (1-255) ,pd_desc VARCHAR(500) NOT NULL COMMENT upper limit value 65533 bytes,us_detail STRING NOT NULL COMMENT upper limit value 65533 bytes,relTime DATETIME COMMENT YYYY-MM-DD HH:MM:SS,channel FLOAT COMMENT 4 bytes,income DOUBLE COMMENT 8 bytes,account DECIMAL(12,4) COMMENT ,ispass BOOLEAN COMMENT true/false
) ENGINEOLAP
DUPLICATE KEY(make_time, mache_verson)
PARTITION BY RANGE (make_time) (START (2022-03-11) END (2022-03-15) EVERY (INTERVAL 1 day)
)
DISTRIBUTED BY HASH(make_time, mache_verson) BUCKETS 8
PROPERTIES(replication_num 3,dynamic_partition.enable true,dynamic_partition.time_unit DAY,dynamic_partition.start -3,dynamic_partition.end 3,dynamic_partition.prefix p,dynamic_partition.buckets 8
); # 命令查看当前库的所有表
mysql show tables;
# 查看表结构
mysql desc detailDemo;
# 查看建表语句在 StarRocks 中字段名不区分大小写表名区分大小写
mysql show create table detailDemo; 建表语句说明 排序键 StarRocks 表内部组织存储数据时会按照指定列排序这些列为排序列Sort Key明细模型中由 DUPLICATE KEY 指定排序列以上 demo 中的 make_time, mache_verson 两列为排序列。注意排序列在建表时应定义在其他列之前。排序键详细描述以及不同数据模型的表的设置方法请参考 排序键。 字段类型 StarRocks 表中支持多种字段类型除 demo 中已经列举的字段类型还支持 BITMAP 类型HLL 类型Array 类型字段类型介绍详见 数据类型章节。建表时尽量使用精确的类型。例如整形就不要用字符串类型INT 类型满足则不要使用 BIGINT精确的数据类型能够更好的发挥数据库的性能。 分区分桶 PARTITION 关键字用于给表 [创建分区](https://docs.starrocks.com/zh-cn/main/sql-reference/sql-statements/data-definition/CREATE TABLE#Syntax)当前 demo 中使用 make_time 进行范围分区从 11 日到 15 日每天创建一个分区。StarRocks 支持动态生成分区PROPERTIES 中的 dynamic_partition 开头的相关属性配置都是为表设置动态分区。详见 动态分区管理。DISTRIBUTED 关键字用于给表 [创建分桶](https://docs.starrocks.com/zh-cn/main/sql-reference/sql-statements/data-definition/CREATE TABLE#Syntax)当前 demo 中使用 make_time, mache_verson 两个字段通过 Hash 算法创建 32 个桶。创建表时合理的分区和分桶设计可以优化表的查询性能分区分桶列如何选择详见 数据分布章节。 数据模型 DUPLICATE 关键字表示当前表为明细模型KEY 中的列表示当前表的排序列。StarRocks 支持多种数据模型分别为 明细模型聚合模型更新模型主键模型。不同模型的适用于多种业务场景合理选择可优化查询效率。 索引 StarRocks 默认会给 Key 列创建稀疏索引加速查询具体规则见 排序键和 shortke index 章节。支持的索引类型有 Bitmap 索引Bloomfilter 索引 等。
注意索引创建对表模型和列有要求详细说明见对应索引介绍章节。
ENGINE 类型 默认为 olap。可选 mysqlelasticsearchhiveICEBERG 代表创建表为 外部表。
**本人博客网站 **IT小神 www.itxiaoshen.com