华为云用户手册

  • 查看MySQL指标 登录 AOM 2.0控制台。 在左侧导航栏中选择“指标浏览”。 在右侧“指标源”页签选择前提条件中准备的Prometheus实例。 单击“交互模式”和“多指标”,在指标搜索框中输入MySQL相关指标名称,查看该指标的详细信息。 此处以查看MySQL的“mysql_exporter_collector_duration_seconds”指标为例,可多维度查看该指标值与趋势图。 图1 查看MySQL指标
  • Doris存算分离集群版本能力对比 表2 Doris存算分离集群版本服务化能力对比 功能列表 3.0.6 3.0.3 创建集群 √ 受限 删除集群 √ √ 重启集群 √ √ 重启节点 √ √ 节点扩容 √(仅支持BE节点) √(仅支持BE节点) 节点缩容 受限(仅支持BE节点) 受限(仅支持BE节点) 磁盘扩容 √ √ 规格变更 升配 √ √ 降配 受限 受限 Broker √ √ 按需计费 √ √ 包周期 创建包周期集群 √ √ 退订/释放 √ √ 包周期续费/开通自动续费 √ √ 按需转包周期 √ √ 包周期集群节点扩容/规格变更/磁盘扩容 √ √ 参数配置 √ √ 用户管理 √ √ 角色管理 √ √ 连接管理 √ √ 慢查询管理 √ x 租户管理 √ √ 多计算组 √ √ 多安全组/修改安全组 √ √ 日志服务(LTS) √ √ UDF管理 受限 受限 标签管理(TMS) √ √
  • Doris存算一体集群版本能力对比 表1 Doris存算一体集群服务化版本能力对比 功能列表 2.1.7 2.1.6 2.0.13 2.0.5 2.0.2 1.2.3 创建集群 √ x x x x x 删除集群 √ √ √ √ √ √ 重启集群 √ √ √ √ √ √ 重启节点 √ √ √ √ √ √ 节点扩容 √ √ √ √ √ √ 节点缩容 受限 受限 受限 受限 受限 受限 磁盘扩容 √ √ √ √ √ √ 规格变更 升配 √ √ √ √ √ x 降配 受限 受限 受限 x x x 本地盘 √ √ √ √ √ √ Broker √ √ √ √ √ √ https通道加密 √ √ √ √ √ √ Doris接口认证 √ √ √ √ √ √ 冷热分离 受限 受限 受限 x x x 按需计费 √ √ √ √ √ √ 包周期 创建包周期集群 √ √ √ √ √ √ 退订/释放 √ √ √ √ √ √ 包周期续费/开通自动续费 √ √ √ √ √ √ 按需转包周期 √ √ √ √ √ √ 包周期集群节点扩容/规格变更/磁盘扩容 √ √ √ √ √ √ 参数配置 √ √ √ √ √ √ 用户管理 √ √ √ √ √ √ 租户管理 √ √ √ x x x 角色管理 √ √ √ √ √ x 连接管理 √ √ √ x x x 慢查询管理 √ x x x x x 多安全组/修改安全组 √ √ √ √ √ √ 日志服务(LTS) √ √ √ √ √ √ UDF管理 受限 受限 受限 受限 受限 x 标签管理(TMS) √ √ √ √ √ √
  • Doris内核3.0.6版本能力地图 本章节介绍CloudTable Doris 3.0.6版本存算分离支持的内核特性,请参见表1、表2。 使用说明介绍: 可以使用:经过产品团队质量加固和充分测试。 受限使用:需要客户基于业务场景在测试环境进行充分测试后,确保业务稳定运行后可在生产环境中使用。 不建议使用:社区能力不够成熟,存在一些可靠性问题。不建议使用的特性,可参考表2 不建议使用特性列表中的“使用建议”。 能力说明: 自研:由产品团队自研的易用性、性能、DFX等内核引擎特性,如缓存加速优化、checkpointer优化。 质量加固:产品团队基于社区开源能力,对已知bug和客户的需求,进行质量加固和充分测试。 纯开源:能力和开源社区版本能力保持一致,未进行质量加固。 表1 使用特性列表 一级特性 二级特性 三级特性 使用说明 使用建议 数据表设计 数据划分 表索引 可以使用 - 表分桶 可以使用 - 表分区 受限使用 建议使用的动态分区类型包括:dynamic partition、range分区、list分区和手动分区。 不建议使用auto partition进行自动分区,因为该方法存在一些社区尚未解决的问题,且其数据划分不够合理。 数据类型 基本字段类型 可以使用 - 复合字段类型 受限使用 建议使用variant类型。 压缩算法 可以使用 - 数据模型 Duplicate明细模型 可以使用 - Unique主键模型 可以使用 - Aggregate聚合模型 可以使用 - 同步物化视图 可以使用 - 异步物化视图 受限使用 多表物化视图在存算分离版本中仍存在许多未修复的开源问题,包括新增的多表物化视图透明改写能力的增强,该功能目前仍受限使用。 数据操作 DML 表数据的增删改查操作 可以使用 - Load类型任务管理 可以使用 - DDL 数据库表索引视图的增删改查 可以使用 - 函数 可以使用 - 资源管理 可以使用 - SQL函数 自有函数 可以使用 - 自定义UDF 可以使用 - 辅助命令 HELP命令 可以使用 - Show命令 可以使用 - 数据导入 Stream Load 可以使用 - Broker Load 可以使用 - Routine Load 受限使用 推荐使用flink导入,从Kafka导入数据。 使用限制:安全模式不支持kafka。 Insert into select 可以使用 - Insert into values 可以使用 - 数据导出 数据导出export 可以使用 - 查询结果集导出insert into outfile 可以使用 - 数据更新及删除 主键模型表中的Sequence列 可以使用 - 主键模型表中的Upsert 可以使用 - Load任务中数据的批量删除和更新 可以使用 - 湖仓能力 多源Catalog Hive Catalog 可以使用 - Hudi Catalog 可以使用 - Paimon 受限使用 未进行任何质量加固,且开源存在较多未解决问题,建议充分测试后投产使用。 Iceberg 受限使用 未进行任何质量加固,且开源存在较多未解决问题,建议充分测试后投产使用。 JDBC Catalog 受限使用 可以使用经过质量加固的MySQL、PostgreSQL类型的JDBC目录,其他JDBC类型建议充分测试后投产使用。 Connector Flink Connector 可以使用 - Spark Connector 受限使用 不支持date/datetime类型以及复合类型的查询,其他基础类型均支持。 资源负载能力 compaction base compaction、cumulative compaction、vertical compaction 可以使用 - 慢查询/审计日志表 - 可以使用 - 数据负载均衡 - 可以使用 - 多租户与资源隔离 Workload Group 受限使用 推荐Compute Group。 Compute Group 可以使用 - 原生页面 原生UI - 受限使用 建议在调试,运维场景使用,禁止用于生产业务。 3.0.x新增变化 存算分离 新增FDB和MetaService服务 可以使用 - Storage Vault管理及应用 可以使用 - Compute Group计算组管理及应用 可以使用 - 湖仓一体 外部表SQL拦截 受限使用 SQL拦截功能(SQL Block Rule)现在支持外部表。 数据操作 半结构化Variant读写 受限使用 使用Variant分析Json数据仍存在许多未解决的开源问题。对于固定格式的Json,且字段类型为基本类型、非超长数据的表格,可以受限使用。除此之外,不建议使用。 倒排索引增强,增加了对Array类型的支持 可以使用 - 新增函数 可以使用 - 其他 函数类 受限使用 支持Java UDTF。 资源隔离 可以使用 - 自研增强 慢查询 - 可以使用 - 审计日志表 - 可以使用 - checkpointer优化 - 可以使用 - 存算分离优化 短路径下推性能加速 可以使用 - Cache缓存命中度提升 可以使用 - 存算分离缓存盘均衡及健康检测 可以使用 - 安全可靠性 通信链路通道加密 可以使用 - 支持UDF标准路径及沙箱策略 可以使用 - Doris元数据容错加载 可以使用 - 审计日志 入库任务审计能力增强 可以使用 - 表2 不建议使用特性列表 一级特性 二级特性 三级特性 使用说明 使用建议 数据表设计 数据模型 外表物化视图 不建议使用 例如对hive外表的物化视图,存在诸多开源BUG和受限操作,能力不完善。 数据操作 数据导入 MySQL Load 不建议使用 推荐Stream Load 备份恢复和迁移 Backup & restore 不支持 备份恢复和迁移仅支持存算一体架构。 CCR集群间数据同步 不支持 CCR集群间数据同步仅支持存算一体架构。 高并发导入优化 Group Commit 不建议使用 高并发导入Group Commit功能在Doris 3.0.x版本中不稳定,不建议使用该功能。 资源负载能力 Arrow Flight - 不建议使用 Doris 2.1版本引入了高性能的新接口,目前仅进行了安全加固。然而,社区中存在较多未解决的问题,因此,非必要不建议使用。 冷热分离 - 不支持 冷热分离是存算一体架构下降低存储成本的方案,存算分离架构不涉及。 多租户与资源隔离 Resource Group 不建议使用 推荐Compute Group。 湖仓能力 湖仓一体 数据回写 数据湖 功能 不建议使用 Doris 3.0.6版本增加了Hive、Iceberg数据回写功能、Insert Overwrite支持Iceberg表不成熟,且开源存在诸多限制和问题。 新增多种数据源连接器connector 不建议使用 Delta Lake、Kudu、BigQuery、Kafka等多种Connector的适配不成熟,开源存在诸多限制和问题。 ES Catalog 不建议使用 支持ES Catalog,将Elasticsearch中的nested或object类型映射为Doris的JSON类型。在ES外部源场景中,由于开源字段类型映射不全,仍存在较多未解决的开源问题。 新增多种数据源Catalog 不建议使用 包括MaxCompute、Delta Lake、BigQuery、Kudu、Elasticsearch、JDBC、MySQL JDBC、PostgreSQL JDBC、Oracle JDBC、SQL Server JDBC、IBM Db2 JDBC、Clickhouse JDBC、SAP HANA JDBC、Oceanbase JDBC在内的多种场景,这些多为非主流场景,且开源社区中存在较多未解决的问题。 其他 显示事务(begin..commit..rollback) 不建议使用 显式事务支持对INSERT INTO SELECT、DELETE和UPDATE操作提供显式事务;显式多事务调用时,任务异常回滚的代价较高,且存在未解决的开源问题。 父主题: Doris版本能力地图
  • StarRocks存算一体集群版本能力对比 表1 StarRocks集群服务化版本能力对比 功能列表 3.2.8 3.3.18 创建集群 √ √ 删除集群 √ √ 重启集群 √ √ 重启节点 √ √ 节点扩容 √ √ 磁盘扩容 √ √ 规格变更 √ √ Broker √ √ 按需计费 √ √ 包周期 创建包周期集群 √ √ 退订/释放 √ √ 包周期续费/开通自动续费 √ √ 按需转包周期 √ √ 包周期集群节点扩容/规格变更/磁盘扩容 √ √ 参数配置 √ √ 租户管理 √ √ 用户管理 √ √ 角色管理 √ √ 连接管理 √ √ 多安全组/修改安全组 √ √ 日志服务(LTS) √ √ 标签管理(TMS) √ √
  • StarRocks集群连接方式介绍 表1 StarRocks连接方式 连接方式 使用场景介绍 说明 使用MySQL客户端连接 MySQL客户端是开源客户端,支撑实时分析和处理海量数据需求。 BI工具集成 数据迁移 简单查询与分析 运维管理 灵活、易用 使用Web UI连接StarRocks集群 Web UI是一个基于浏览器的可视化界面,为用户提供了便捷的集群管理和监控方式。 监控与管理集群 节点状态监控:查看FE、BE节点运行状态。 资源使用情况:监控CPU、内存、磁盘等使用率。 查询统计:查看当前和历史查询的执行情况。 数据库与表管理 数据库管理:创建、删除数据库。 表管理:创建、修改、删除表、查看表结构。 分区与分桶管理:查看和修改分区、分桶策略。 StarRocks Web UI提供了直观的集群管理界面,适合日常监控、快速问题定位和简单管理操作。
  • 用户权限常用命令 创建角色 CREATE Role role_name; role_name:指新建角色名称。 给角色赋予权限。 授予指定库表的权限给角色。 GRANT LOAD_PRIV ON ctl1.db1.* TO ROLE 'my_role'; 授予指定资源的使用权限给角色。 GRANT USAGE_PRIV ON RESOURCE 'spark_resource' TO ROLE 'my_role'; 删除角色。 DROP ROLE role1; 创建用户。 CREATE USER命令用于创建一个Doris用户(无角色)。 CREATE USER 'Jack' IDENTIFIED BY 'password'; 表3 参数说明 参数 说明 Jack 设置的用户名。 password 指创建的用户密码。 可通过命令指定IP。 CREATE USER 'jack02' @'192.168.%' identified by '123456' DEFAULT ROLE 'default_role'; CREATE USER命令用于创建一个Doris用户(分配系统默认角色)。 CREATE USER 'jeo' IDENTIFIED BY 'password' DEFAULT ROLE 'default_role'; 修改用户密码。 ALTER USER命令用于修改用户密码。 ALTER USER 'Jack' IDENTIFIED BY "password"; 给用户分配角色。 给用户分配角色。 GRANT 'role1','role2' TO 'jack'@'%'; 表4 参数说明 参数 说明 role 代表创建的角色。 jack 代表新建的用户名。 撤销分配给用户的角色。 REVOKE 'role1' FROM 'candy'; 删除用户。 DROP USER'Jack'; 查询当前用户的权限和角色。 SHOW GRANTS;
  • 用户权限常用命令 存算一体用户权限使用命令 创建角色,role_name:指新建角色名称。 CREATE role IF NOT EXISTS 'role_name' ON CLUSTER default_cluster; 给角色赋予权限。 授予全部创建(库、表)权限。 GRANT CREATE ON *.* TO role1 ON CLUSTER default_cluster; 授予test_db库下创建表权限。 GRANT CREATE TABLE ON test_db.* TO role1; 授予全部删除(库、表)权限。 GRANT DROP ON test_db.* TO role1; 删除角色。 DROP ROLE 'role_name' ON CLUSTER default_cluster; 创建用户。 CREATE USER IF NOT EXISTS name ON CLUSTER default_cluster IDENTIFIED WITH sha256_password BY 'password'; 指定IP。 CREATE USER name HOST IP '127.0.0.x' IDENTIFIED WITH sha256_password BY 'password'; 修改用户密码。 ALTER USER IF EXISTS name ON CLUSTER default_cluster IDENTIFIED WITH sha256_password BY 'password'; 给用户分配角色。 GRANT role1, role2 TO new_user ON CLUSTER default_cluster; 撤销分配角色。 REVOKE role1 FROM user ON CLUSTER default_cluster; 删除用户。 DROP USER IF EXISTS ‘name1’ ON CLUSTER default_cluster; 查询用户的权限和角色。 查询用户权限。 show grants for all; 查询角色权限。 show grants for role1;
  • 注意事项 删除操作不可逆,即使删除后立即重新添加同名角色,也可能存在权限和以前不一致的情况。所以,删除角色前需确认此角色是否应用中。 删除用户前需确认此账户是否使用。删除操作不可逆,即使删除后立即重新添加同名账户,也可能存在权限和以前不一致的情况。 admin、root和default用户是ClickHouse集群中默认的用户,不能删除。 只有“用户管理”中的用户可以修改密码,root和默认用户的密码不可修改。 不支持在集群的单节点上创建用户和角色。 给角色授予某张表的权限之后,删除表时不会清除已经授予角色的该表的权限,重新创建同名表后角色会继承原有该表的权限。如果需要,可以手动清除已经授予角色的表的权限。 给用户A授予表格B的操作权限,当用户A删除数据表B时需要先手动删除授予表格B的操作权限,否则用户C创建的同名表格,用户A可操作同名表,且有表格B同等的操作权限。 组件不支持查看已有账户的密码,如果忘记密码可以通过重置密码功能设置新密码。
  • JSON格式数据导入导出 JSON格式数据导入。 非安全集群 cat ./jsonnossl.json | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --database test010 --query="INSERT INTO test141 FORMAT JSON" 安全集群 cat ./jsonssl.json | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --config-file ./config.xml --database test010 --query="INSERT INTO test142 FORMAT JSON" cat文件路径:导入文件路径,路径自定义。 host:主机名/ClickHouse实例IP地址。 port:端口号(在集群详情页面查看)。 user:创建集群时创建的用户名。 database:数据库名。 password:创建集群时,创建的密码。 INSERT INTO:后面跟数据表。 config-file ./config.xml:指定配置文件,请参见使用客户端连接ClickHouse安全集群章节。
  • parquet格式数据导入导出 parquet格式数据导入。 非安全集群 cat parquet_no_ssl.parquet | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --database test010 --query="INSERT INTO test145 FORMAT Parquet" 安全集群 cat parquet_no_ssl.parquet | ./clickhouse client --host 192.168.x.x --port port --user admin --password password --config-file ./config.xml --database test010 --query="INSERT INTO test146 FORMAT Parquet" parquet_no_ssl.parquet:表示格式文件存放路径,路径自定义。 host:主机名/ClickHouse实例IP地址。 port:端口号(在集群详情页面查看)。 user:创建集群时创建的用户名。 database:数据库名。 password:创建集群时,创建的密码。 INSERT INTO:后面跟数据表。 config-file ./config.xml:指定配置文件,请参见使用客户端连接ClickHouse安全集群章节。
  • 使用限制 规格变更过程中,重启方式选择强制重启,整个集群不可用,变更结束前不能再次变更。 一次只支持变更一种类型的节点规格,且变更完成后只生效所选类型的节点规格。 如果数据量比较大的情况下,更改节点规格耗时会比较长,因此,建议在业务低峰期扩容节点规格,利于更快完成规格变更。 滚动重启模式下,存在业务抖动情况,请增加业务重试机制。若存在Thrift Server业务,则会被中断,请在变更完成后重试。 旧集群不支持滚动规格变更,如果需要使用此功能,请联系技术工程师处理。
  • 基于索引查询HBase表数据 在具有索引的用户表中,可以使用SingleColumnValueFilter来查询数据。当查询条件可以命中索引时,查询速度远快于原表查询。 索引的命中规则如下: 多个AND条件查询。 当用于查询的列至少包含索引第一个列时,使用索引会提高查询性能。 例如,为C1、C2和C3创建组合索引。 该索引在以下情况下生效: Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) AND Filter_Condition(IndexCol30) Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1) 该索引在下列情况下不生效: Filter_Condition(IndexCol2) AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol2) Filter_Condition(IndexCol3) 当在查询中使用“索引列和非索引列”进行过滤时,使用索引可提高查询性能。当非索引列命中覆盖列时,查询性能最优;如果有需经常查询的非索引列,建议定义为覆盖列。例如: Filter_Condition(IndexCol1) AND Filter_Condition(NonIndexCol1) Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2) AND Filter_Condition(NonIndexCol1) 当多个列用于查询时,只能为组合索引中的最后一列指定值范围,而其他列只能设置为指定值。 例如,为C1、C2和C3创建组合索引。在范围查询中,只能为C3设置数值范围,过滤条件为“C1 = XXX,C2 = XXX,C3 = 数值范围”。 多个OR条件查询。 例如,为C1、C2和C3创建组合索引。 仅对索引列首个字段进行过滤时(支持范围过滤),使用索引可提高查询性能。 Filter_Condition(IndexCol1) OR Filter_Condition(IndexCol1) OR Filter_Condition(IndexCol1) 对非索引和非索引列进行过滤时,无法命中索引,查询性能不会提高。 Filter_Condition(IndexCol1) OR Filter_Condition(NonIndexCol1) 组合查询时,最外层包含OR条件时无法命中索引,查询性能不会提高。 Filter_Condition(IndexCol1) OR Filter_Condition(NonIndexCol1) (Filter_Condition(IndexCol1) AND Filter_Condition(IndexCol2)) OR (Filter_Condition(NonIndexCol1)) 减少OR条件使用,尤其是OR条件+范围条件,命中索引的情况下也会造成查询大范围查询,速度较慢。
  • 查询HBase全局二级索引信息 用户可以使用全局二级索引工具批量查看某个数据表相关索引的定义及状态。 在HBase客户端执行以下命令可索引的定义及状态: hbase org.apache.hadoop.hbase.hindex.global.mapreduce.GlobalTableIndexer -Dtablename.to.show='table' 相关参数介绍如下: tablename.to.show:表示需查看相关索引定义的数据表名称。 查询结果如图1所示,会打印索引列定义、覆盖列定义、TTL、预分区信息、索引状态等: 图1 索引查询结果
  • 异步物化视图常用命令 手动刷新异步物化视图。创建异步物化视图后,视图中的数据仅反映创建时刻基表的状态;当基表中的数据发生变化时,需要通过刷新异步物化视图更新数据变化。 异步调用刷新任务。 REFRESH MATERIALIZED VIEW order_mv; 同步调用刷新任务。 REFRESH MATERIALIZED VIEW order_mv WITH SYNC MODE; 查看异步物化视图。 查看当前 数据仓库 内的所有异步物化视图。 SHOW MATERIALIZED VIEWS\G; 查看指定的异步物化视图 SHOW MATERIALIZED VIEWS WHERE NAME = "order_mv"\G; 通过名称匹配查看异步物化视图。 SHOW MATERIALIZED VIEWS WHERE NAME LIKE "order%"\G; 通过Information Schema中的系统元数据表“materialized_views”查看所有异步物化视图。 SELECT * FROM information_schema.materialized_views\G; 查看异步物化视图的创建语句。 SHOW CREATE MATERIALIZED VIEW order_mv; 修改异步物化视图名称。 ALTER MATERIALIZED VIEW db.order_mv RENAME order_total; 删除异步物化视图。 DROP MATERIALIZED VIEW order_mv;
  • 创建异步物化视图 连接StarRocks集群。具体方式请参见手动安装MySQL客户端。 ./mysql -uadmin -ppassword -h集群内网地址 -P9030 在Default Catalog中创建两张基表,并插入数据。 创建数据库。 create db_name; 使用数据库。 use db_name; 创建表goods并插入数据: CREATE TABLE goods( item_id1 INT comment "产品 ID", item_name STRING comment "产品名称", price FLOAT comment "产品价格" ) DISTRIBUTED BY HASH(item_id1); INSERT INTO goods VALUES (1001,"apple",6.5),(1002,"pear",8.0),(1003,"potato",2.2); 创建表order_list并插入数据。 CREATE TABLE order_list( order_id INT comment "订单 ID", client_id INT comment "客户 ID", item_id2 INT comment "产品 ID", order_date DATE ) DISTRIBUTED BY HASH(order_id); INSERT INTO order_list VALUES (10001,101,1001,"2022-03-13"), (10001,101,1002,"2022-03-13"), (10002,103,1002,"2022-03-13"), (10002,103,1003,"2022-03-14"), (10003,102,1003,"2022-03-14"), (10003,102,1001,"2022-03-14"); 查询数据。 SELECT order_id, sum(goods.price) as total FROM order_list INNER JOIN goods ON goods.item_id1 = order_list.item_id2 GROUP BY order_id; 创建异步物化视图。根据查询语句,于表goods和表order_list创建一个“以订单ID为分组,对订单中所有商品价格求和”的异步物化视图,并设定其刷新方式为ASYNC,每天自动刷新。 CREATE MATERIALIZED VIEW order_mv DISTRIBUTED BY HASH(`order_id`) REFRESH ASYNC START('2022-09-01 10:00:00') EVERY (interval 1 day) AS SELECT order_list.order_id, sum(goods.price) as total FROM order_list INNER JOIN goods ON goods.item_id1 = order_list.item_id2 GROUP BY order_id; 查询异步物化视图是否创建成功。 SELECT * FROM order_mv;
  • 基本概念 基表:物化视图的驱动表。对于StarRocks的异步物化视图,基表可以是Default Catalog中的内部表、外部数据目录中的表,甚至是已有的异步物化视图或视图。StarRocks支持在所有StarRocks表类型上创建异步物化视图。 刷新:创建异步物化视图后,其中的数据仅反映创建时刻基表的状态。当基表中的数据发生变化时,需要通过刷新异步物化视图更新数据变化。目前StarRocks支持两种异步刷新策略ASYNC、MANUAL。 ASYNC:异步刷新,每当基表中的数据发生变化时,物化视图根据指定的刷新间隔自动触发刷新任务。 MANUAL:手动触发刷新。物化视图不会自动刷新,需要用户手动维护刷新任务。 查询改写: 查询改写是指在对已构建了物化视图的基表进行查询时,系统自动判断是否可以复用物化视图中的预计算结果处理查询。如果可以复用,系统会直接从相关的物化视图读取预计算结果,以避免重复计算消耗系统资源和时间。 StarRocks支持基于SPJG类型异步物化视图的自动、透明查询改写。SPJG类型的物化视图是指在物化视图Plan中只包含Scan、Filter、Project以及Aggregate类型的算子。
  • 物化视图原理介绍 物化视图的数据组织形式和基表、RollUp表相同。用户可以在新建基表时添加物化视图,也可以对已有表添加物化视图,这种情况下,基表的数据会自动以异步方式填充到物化视图中。基表可以拥有多张物化视图,向基表导入数据时,会同时更新基表的所有物化视图。数据导入操作具有原子性,因此基表和它的物化视图保持数据一致。 物化视图创建成功后,用户原有查询基表的SQL语句保持不变,StarRocks会自动选择一个最优的物化视图,从物化视图中读取数据并计算。用户可以通过EXPLAIN命令检查当前查询是否使用了物化视图。 物化视图中的聚合和查询中聚合的函数对应关系如表1所示。其中bitmap和hll的聚合函数在查询匹配到物化视图后,查询的聚合算子会根据物化视图的表结构进行改写。 表1 物化视图聚合和查询中聚合的函数对应关系 物化视图聚合函数 查询中聚合函数 sum sum min min max max count count bitmap_union bitmap_union、bitmap_union_count、count(distinct) hll_union hll_raw_agg、hll_union_agg、ndv、approx_count_distinct
  • 用户权限常用命令 创建角色 CREATE Role role_name; role_name:指新建角色名称。 给角色赋予权限。 授予指定库表的权限给角色。 GRANT LOAD_PRIV ON ctl1.db1.* TO ROLE 'my_role'; 授予指定资源的使用权限给角色。 GRANT USAGE_PRIV ON RESOURCE 'spark_resource' TO ROLE 'my_role'; 删除角色。 DROP ROLE role1; 创建用户。 CREATE USER命令用于创建一个StarRocks用户(无角色)。 CREATE USER 'Jack' IDENTIFIED BY 'password'; 表3 参数说明 参数 说明 Jack 设置的用户名。 password 指创建的用户密码。 可通过命令指定IP。 CREATE USER 'jack02' @'192.168.%' identified by '123456' DEFAULT ROLE 'default_role'; CREATE USER命令用于创建一个StarRocks用户(分配系统默认角色)。 CREATE USER 'jeo' IDENTIFIED BY 'password' DEFAULT ROLE 'default_role'; 修改用户密码。 ALTER USER命令用于修改用户密码。 ALTER USER 'Jack' IDENTIFIED BY "password"; 给用户分配角色。 给用户分配角色。 GRANT 'role1','role2' TO 'jack'@'%'; 表4 参数说明 参数 说明 role 代表创建的角色。 jack 代表新建的用户名。 撤销分配给用户的角色。 REVOKE 'role1' FROM 'candy'; 删除用户。 DROP USER'Jack'; 查询当前用户的权限和角色。 SHOW GRANTS;
  • 使用限制 删除操作不可逆,即使删除后立即重新添加同名角色,也可能存在权限和以前不一致的情况。所以,删除角色前需确认此角色是否应用中。 删除用户前需确认此账户是否再用。删除操作不可逆,即使删除后立即重新添加同名账户,也可能存在权限和以前不一致的情况。 组件不支持查看已有账户的密码,如果忘记密码可以通过重置密码功能设置新密码。 组件支持查看账户对数据库的操作权限。 用户名、角色名称大小写敏感。 用户管理、角色管理目前只支持StarRocks存算一体集群。
  • StarRocks多源数据原理图 目前StarRocks提供两种类型Catalog:internal catalog和external catalog。 图1 StarRocks多源数据原理图 Internal catalog:内部数据目录,用于管理StarRocks所有内部数据。例如,执行CREATE DATABASE和CREATE TABLE语句创建的数据库和数据表都由internal catalog管理。 每个StarRocks集群都有且只有一个internal catalog名为default_catalog。 External catalog:外部数据目录,用于连接外部metastore。在StarRocks中,您可以通过external catalog直接查询外部数据,无需进行数据导入或迁移。 使用external catalog查询数据时,StarRocks会用到外部数据源的两个组件: 元数据服务:用于将元数据暴露出来供StarRocks的FE进行查询规划。 存储系统:用于存储数据。数据文件以不同的格式存储在分布式文件系统或对象存储系统中。当FE将生成的查询计划分发给各个BE(或CN)后,各个BE(或CN)会并行扫描Hive存储系统中的目标数据,并执行计算返回查询结果。
  • Flink读写Doris数据操作步骤 Doris侧操作 使用SSH登录工具,访问Doris集群。 连接Doris普通集群命令,详细请参见使用MySQL客户端连接Doris普通集群。 ./mysql -uadmin -ppassword -h集群内网地址 -P9030 连接Doris安全集群命令,详细请参见使用MySQL客户端连接Doris安全集群。 ./mysql -uadmin -h集群内网地址 -P端口 --ssl-ca={path}/certificate.crt --ssl-mode=VERIFY_CA -ppassword 表2 参数说明 参数 说明 admin 连接Doris集群的账户。 password 连接Doris集群的账户密码。 集群内网地址 获取集群内网地址:进入集群“详情”页,在“集群信息”模块处获取“集群访问地址”。 path 如果集群是开启HTTPS,需要配置证书的路径。 创建并使用数据库。 创建数据库testdb。 create database if not exists testdb; 使用新创建的数据库testdb。 use testdb; 创建数据表demo。 create table demo(id int, name string) distributed by hash(id) buckets 10; 向表demo中插入数据。 insert into demo values(123, 'aaa'), (234, 'bbb'), (345, 'ccc'); 创建表test_demo。 create table test_demo(id int, name string) distributed by hash(id) buckets 10; Flink侧操作 以root用户登录 MRS 客户端所在节点(Master1节点),进入安装了Flink客户端的节点。 cd 客户端安装目录 加载环境变量。 source bigdata_env 认证用户,如果MRS集群未启用Kerberos认证(普通模式)请跳过该操作。 kinit 组件业务用户 连接Flink SQL客户端。 进入bin目录。 cd Flink/flink/bin/ 登录Flink SQL客户端。 sql-client.sh 在Flink客户端创建Flink SQL作业。 创建表“Flink_doris_source”。 CREATE TABLE flink_doris_source (id INT, name STRING) WITH ( 'connector' = 'doris', 'fenodes' = 'FE实例IP地址:端口号', 'table.identifier' = 'testdb.demo', 'username' = 'user', 'password' = 'password', 'doris.enable.https' = 'true', 'doris.ignore.https.ca' = 'true' ); 创建表“Flink_doris_sink”。 CREATE TABLE flink_doris_sink (id INT, name STRING) WITH ( 'connector' = 'doris', 'fenodes' = 'FE实例IP地址:端口号', 'table.identifier' = 'testdb.test_demo', 'username' = 'user', 'password' = 'password', 'sink.label-prefix' = 'doris_label_6', 'doris.enable.https' = 'true', 'doris.ignore.https.ca' = 'true' ); 如果集群开启HTTPS,需要在创建表的with子句中添加以下参数;如果集群未开启HTTPS,则不需要在创建表的with子句中添加以下参数。 'doris.enable.https' = 'true' 'doris.ignore.https.ca' = 'true' Flink_doris_source、Flink_doris_sink表参数对应Doris表中字段。 端口号为MySQL端口9030。 创建Flink作业时,username配置项为Doris用户,password配置项为Doris用户密码。 将表Flink_doris_source中的数据插入Flink_doris_sink表中。 INSERT INTO flink_doris_sink select id,name from flink_doris_source; 验证 根据1访问Doris集群,验证test_demo表中是否插入新数据。 使用testdb数据库。 use testdb; 查看test_demo表中插入数据。 select * from test_demo;
  • 访问租户资源匹配规则 匹配度计算方式: 如果user一致,则该分类器匹配度增加1。 如果role一致,则该分类器匹配度增加1。 如果query_type一致,则该分类器匹配度增加1 + 1/分类器的query_type数量。 如果查询的db匹配,则匹配度加10。 示例1:多个与查询任务匹配的分类器中,分类器的条件数量越多,匹配度越高。 分类器B的条件数量比分类器A多,所以B的匹配度比A的高。 Classifiers A (user='admin') Classifiers A (user=admin',role='test') 示例2:如果分类器的条件数量相等,则分类器的条件描述越精确,其匹配度越高。 分类器C限定的查询类型为“select”,D限定的查询类型为“select”、“insert”,C限定的查询类型数量更少,所以C的匹配度比D高。 classifier C (user='admin', query_type in ('select')) classifier D (user='admin', query_type in ('insert','select')) 示例3:如果多个分类器的匹配度相同,那么会随机选择其中一个分类器。 如果一个查询同时查询了db1和db2,并且命中的分类器中E和F的匹配度最高,那么会从E和F中随机选择一个。 classifier E (db='db1') classifier F (db='db2')
  • 使用限制 新建用户默认绑定默认租户normal。 一个用户只能绑定一个租户。 一个租户可以被多个用户绑定。 最多只能创建一个SHORT_QUERY资源组。 租户NORMAL和SHOUT_QUERY,仅支持StarRocks 3.2.8版本。 租户名称不可修改。 租户管理目前只支持StarRocks存算一体集群。 资源组的user字段只能包含数字、字母和下划线,请使用纯用户名,不支持username@host格式的用户名。
  • Doris慢查询使用命令 查询慢查询功能是否开启。 ADMIN show FRONTEND CONFIG like 'query_history_enable'; 开启慢查询功能。 ADMIN set FRONTEND CONFIG ("query_history_enable" = "true"); 关闭慢查询功能。 ADMIN set FRONTEND CONFIG ("query_history_enable" = "false");
  • 步骤三:查询数据映射表 查看Catalogs。以查看Hive hdfs数据表为例。 show catalogs; 执行以下命令查询Catalog下面的数据库。 show databases from catalog_name; 切换到指定的Catalog。 set catalog catalog_name; 使用数据库。 use db_name; 查看数据库中的表。 show tables; 查询目标表的数据。 select * from table_name limit 10; 目标数据表插入数据。 insert into table_name values(8,"8"); 查询表中新插入的数据。 select * from table_name limit 10;
  • 步骤二:使用SQL命令创建Catalog 使用SSH登录工具,通过弹性IP登录到Linux弹性云服务器。 具体登录操作步骤请参见弹性云服务器《用户指南》中的“ SSH密码方式登录”。 访问StarRocks集群,参见使用MySQL客户端连接StarRocks集群。 ./mysql -uadmin -ppassword -h集群内网地址 -P9030 创建Hive Catalog。 创建认证类型为SIMPLE的Catalog,访问存储在HDFS中的Hive数据。 CREATE EXTERNAL CATA LOG hive_catalog PROPERTIES ( "type" = "hive", "hive.metastore.type" = "hive", "hive.metastore.uris" = "***" ); 创建认证类型为KERBEROS的Catalog,访问存储在HDFS中的Hive数据。 CREATE EXTERNAL CATALOG hive_catalog1 PROPERTIES ( "type" = "hive", "hive.metastore.type" = "hive", "hive.metastore.uris" = "thrift://ip:port,thrift://ip:port", "hive.metastore.sasl.enabled" = "true" ); 创建认证类型为SIMPLE的Catalog,访问存储在OBS中的Hive数据。 CREATE EXTERNAL CATALOG hive_catalog2 PROPERTIES ( "type" = "hive", "hive.metastore.type" = "hive", "hive.metastore.uris" = "***", "fs.obs.access.key" = "***", "fs.obs.secret.key" = "***", "fs.obs.endpoint" = "***", "fs.obs.region" = "***" ); 创建认证类型为KERBEROS的Catalog,访问存储在OBS中的Hive数据。 CREATE EXTERNAL CATALOG hive_catalog3 PROPERTIES ( "type" = "hive", "hive.metastore.type" = "hive", "hive.metastore.uris" = "thrift://ip:port,thrift://ip:port", "hive.metastore.sasl.enabled" = "true", "fs.obs.access.key" = "***", "fs.obs.secret.key" = "***", "fs.obs.endpoint" = "***", "fs.obs.region" = "***" ); 相关参数描述以及参数值获取方法。 表2 参数说明 参数 说明 type 对接外部数据类型。 hive.metastore.type 可在hive-site.xml配置文件查看。 hive.metastore.uris hive元数据uri,可在hive-site.xml配置文件查看。 hive.metastore.sasl.enabled 可在hive-site.xml配置文件查看。 fs.obs.access_key access key,获取方式请参见的获取访问密钥(AK/SK)章节。 obs.access_key可以访问到底层数据文件。 fs.obs.secret_key secret key,获取方式请参见的获取访问密钥(AK/SK)章节。 fs.obs.endpoint obs地址,获取方式请参见的获取终端节点章节。 fs.obs.region obs region,在obs页面查看。 以root用户登录MRS客户端所在节点(Master1节点)。 进入client目录下,显示出MRS的全部组件,Hive组件中包含了hive-site.xml配置。 cd /opt/Bigdata/client/ 进入组件中的配置文件查看参数。查看Hive组件中的hive-site.xml配置文件,查找相关参数。 cat /opt/Bigdata/client/Hive/config/hive-site.xml
  • 使用限制 StarRocks查询Hive数据时,支持Parquet、ORC和Textfile三种文件格式,其中: Parquet文件支持SNAPPY、LZ4、ZSTD、GZIP和NO_COMPRESSION压缩格式。自v3.1.5起,Parquet文件还支持LZO压缩格式。 ORC文件支持ZLIB、SNAPPY、LZO、LZ4、ZSTD和NO_COMPRESSION压缩格式。 Textfile文件从v3.1.5起支持LZO压缩格式。 StarRocks查询Hive数据时,不支持INTERVAL、BINARY和UNION 三种数据类型。此外,对于Textfile格式的Hive表,StarRocks不支持MAP、STRUCT数据类型。 StarRocks写入数据到Hive时,支持Parquet(3.2版本及以上)、以及ORC或TextFile(3.3版本及以上)文件格式,其中: Parquet和ORC文件支持NO_COMPRESSION、SNAPPY、LZ4、ZSTD和GZIP压缩格式。 TextFile文件支持NO_COMPRESSION压缩格式。
  • BE节点参数说明 表4 BE节点参数说明 参数名 静态参数 参数描述 max_consumer_num_per_grou 是 参数类型:int 参数范围:(0,10) 参数默认值:3 描述:一个数据消费者组中的最大消费者数量,用于routine load。 clone_worker_count 是 参数类型:int 参数范围:(0,10) 参数默认值:3 描述:用于执行克隆任务的线程数,其值影响副本均衡的速度。在磁盘压力不大的情况下,可以通过调整该参数来加快副本均衡。
  • FE节点参数说明 表3 FE节点参数说明 参数名 静态参数 参数描述 dynamic_partition_enable 否 参数类型:boolean 参数范围:[true,false] 参数默认值:true 描述:是否开启StarRocks的动态分区功能。该参数只影响动态分区表的分区操作,不影响普通表。 dynamic_partition_check_interval_seconds 否 参数类型:long 参数范围:(0,9223372036854775807) 参数默认值:600 单位:s 描述:动态分区线程的执行频率,默认为600(10分钟),即每10分钟进行一次调度。 max_routine_load_task_num_per_be 否 参数类型:int 参数范围:(0,300) 参数默认值:16 描述:该参数限制每个BE并发执行的Routine Load导入作业的数量上限。超过后,不能再提交新的作业。 max_routine_load_task_concurrent_num 否 参数类型:int 参数范围:(0,10) 参数默认值:5 描述:该参数限制了一个Routine Load导入作业最大的子任务并发数,建议维持默认值。设置过大,可能导致同时并发的任务数过多,占用集群资源。 max_broker_load_job_concurrency 否 参数类型:int 参数范围:(0,30) 参数默认值:5 描述:Broker Load导入作业的最大并发数。 min_bytes_per_broker_scanner 否 参数类型:long 参数范围:(0,9223372036854775807) 参数默认值:67108864 单位:byte 描述:单个Broker Load实例处理的最小数据量。 max_automatic_partition_number 否 参数类型:int 参数范围:(0,2147483647) 参数默认值:4096 描述:系统自动创建分区数量上限。该参数可以防止您由于误操作而创建大量分区。 tablet_sched_repair_delay_factor_second 否 参数类型:long 参数范围:(0,2147483647) 参数默认值:60 描述:FE进行副本修复的间隔。此参数为一个基准系数。对于HIGH优先级,延迟为基准系数 * 1;对于NORMAL优先级,延迟为基准系数 * 2;对于LOW优先级,延迟为基准系数 * 3。即优先级越低,延迟等待时间越长。如果用户想尽快修复副本,可以适当降低该参数。 tablet_sched_balance_load_score_threshold 否 参数类型:double 参数范围:(0,1) 参数默认值:0.1 描述:集群balance百分比的阈值。默认为0.1,即10%。当一个BE节点的load score,不高于或不低于平均load score的10% 时,我们认为这个节点是均衡的。如果想让集群负载更加平均,可以适当调低这个参数
共93203条