华为云用户手册

  • 使用非SSL方式连接实例的示例代码 package main import ( "fmt" _ "github.com/influxdata/influxdb1-client" // this is important because of the bug in go mod client "github.com/influxdata/influxdb1-client/v2" ) func main(){ c, err := client.NewHTTPClient(client.HTTPConfig{ Addr: "http://ip:port", Username: "******", Password: "******", }) if err != nil { fmt.Println("Error creating InfluxDB Client: ", err.Error()) } q := client.NewQuery("select * from cpu","db0","ns") if response, err := c.Query(q); err == nil && response.Error() == nil { fmt.Println("the result is: ",response.Results) } }
  • 监控指标 如下监控指标需要在实例节点查看,具体方法请参见查看监控指标。 表1 GaussDB(for Cassandra)支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) nosql005_disk_usage 存储容量使用率 该指标为存储容量使用率。 单位:% 0~100 % GaussDB(for Cassandra)实例 1分钟 nosql006_disk_total_size 存储容量总容量 该指标为实例的存储容量总容量。 单位:GB ≥ 0 GB GaussDB(for Cassandra)实例 1分钟 nosql007_disk_used_size 存储容量使用量 该指标为实例的存储容量使用量。 单位:GB ≥ 0 GB GaussDB(for Cassandra)实例 1分钟 nosql009_dfv_write_delay 存储写时延 该指标用于统计某段时间写入数据到存储层的平均时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 nosql010_dfv_read_delay 存储读时延 该指标用于统计某段时间从存储层读取数据的平均时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra001_cpu_usage CPU使用率 该指标用于统计测量对象的CPU使用率。 单位:% 0~100 % GaussDB(for Cassandra)实例的节点 1分钟 cassandra002_mem_usage 内存使用率 该指标用于统计测量对象的内存使用率。 单位:% 0~100 % GaussDB(for Cassandra)实例的节点 1分钟 cassandra003_bytes_out 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量。 单位:Bytes/s ≥ 0 Bytes/s GaussDB(for Cassandra)实例的节点 1分钟 cassandra004_bytes_in 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量。 单位:Bytes/s ≥ 0 Bytes/s GaussDB(for Cassandra)实例的节点 1分钟 cassandra014_connections 活动连接数 该指标用于统计当前Cassandra实例节点的活动连接数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra015_read_latency 读耗时 该指标用于统计数据库读请求的平均耗时。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra016_write_latency 写耗时 该指标用于统计数据库写请求的平均耗时。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra037_pending_write 挂起的写任务数 描述当前排队等待的写任务数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra038_pending_read 挂起的读任务数 描述当前排队等待的读任务数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra044_range_slice_latency scan耗时 描述平均scan耗时。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra049_dropped_mutation 写丢弃次数 描述平均写丢弃次数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra052_dropped_read 读丢弃次数 描述平均读丢弃次数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra092_load_info 节点负责的数据量 节点负责的数据量大小。 单位:Bytes ≥ 0 Bytes GaussDB(for Cassandra)实例的节点 1分钟 cassandra093_write_count_latency 累计写请求 节点启动累计的写请求个数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra094_write_1min_rate 最近一分钟平均写速率 最近一分钟内的平均写速率。 单位:Counts/s ≥ 0 Counts/s GaussDB(for Cassandra)实例的节点 1分钟 cassandra095_write_p75_latency p75写时延 p75写时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra096_write_p95_latency p95写时延 p95写时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra097_write_p99_latency p99写时延 p99写时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra098_read_count_latency 累计读请求 节点启动累计的读请求个数。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra099_read_1min_rate 最近一分钟平均读速率 最近一分钟内的平均读速率。 单位:Counts/s ≥ 0 Counts/s GaussDB(for Cassandra)实例的节点 1分钟 cassandra100_read_p75_latency p75读时延 p75读时延 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra101_read_p95_latency p95读时延 p95读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra102_read_p99_latency p99读时延 p99读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra103_range_slice_count_latency 累计range读请求 累计range读请求。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra104_range_slice_1min_rate 最近一分钟平均range读速率 最近一分钟平均range读速率。 单位:Counts/s ≥ 0 Counts/s GaussDB(for Cassandra)实例的节点 1分钟 cassandra105_range_slice_p75_latency p75range读时延 p75range读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra106_range_slice_p95_latency p95range读时延 p95range读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra107_range_slice_p99_latency p99range读时延 p99range读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra163_write_p999_latency p999写时延 p999写时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra164_read_p999_latency p999读时延 p999读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra165_large_partition_num 大key数量 当前节点大key的数量。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟 cassandra166_write_max_latency 最大写时延 最大写时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra167_read_max_latency 最大读时延 最大读时延。 单位:ms ≥ 0 ms GaussDB(for Cassandra)实例的节点 1分钟 cassandra168_imbalance_table_num 表数据分布不均匀的个数 表级别的数据分布不均匀的表数量。 单位:Counts ≥ 0 Counts GaussDB(for Cassandra)实例的节点 1分钟
  • 测试结果 性能结果 表6 性能数据 qps_avg统计 节点规格 客户端并发数 预置数据量 _read95_update5 _update50_read50 _read65_update25_insert10 _insert90_read10 开源Cassandra集群性能数据 4U6GB 32 50 2884 5068 8484 10694 8U32GB 64 100 2796 2904 5180 7854 16U64GB 128 200 5896 14776 14304 15707 32U128GB 256 400 8964 22284 19592 22344 GaussDB(for Cassandra)集群性能数据 4U6GB 32 50 8439 10565 9468 23830 8U32GB 64 100 24090 24970 21716 44548 16U64GB 128 200 48985 51335 43557 67290 32U128GB 256 400 91280 85748 74313 111540 GaussDB(for Cassandra)与开源Cassandra性能比 4U6GB 32 50 2.93 2.08 1.12 2.23 8U32GB 64 100 8.62 8.60 4.19 5.67 16U64GB 128 200 8.31 3.47 3.05 4.28 32U128GB 256 400 10.18 3.85 3.79 4.99 测试结论 社区版Cassandra对读较不友好,GaussDB(for Cassandra)在读时延的性能表现上,要优于社区版数十倍。 在写性能表现上,GaussDB(for Cassandra)与社区版基本保持一致。 社区版和GaussDB(for Cassandra)在节点扩容过程中,对业务都有轻度的影响。 GaussDB(for Cassandra)扩容较快,影响业务的时间较为短暂,为10s,且不涉及参数调整,扩容过程十分钟。 社区版根据数据量的大小,参数的设置,整个扩容流程比较长,对性能的影响也参差不齐,50G预置数据,在实验场景中,扩容会超过30分钟。 计算公式:最快迁移速度=(nodetool setstreamthroughput 32设置的迁移流量限制,默认为200Mbps)*原节点数。 本测试过程中,最快的迁移速度=32Mbps/s*3=12MB/S=720MB/min=0.703GB/min,计算可得50GB数据在此场景下迁移的最快时间是:50/0.703=71.1分钟。
  • 压测工具环境 压测机器规格 表3 压测机器规格 名称 测试客户端ECS CPU 16vCPUs 内存 64GB 操作系统 Centos7.4 压测工具信息 表4 压测工具信息 测试工具 YCSB 版本 0.12.0 下载地址 https://github.com/brianfrankcooper/YCSB curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.12.0/ycsb-0.12.0.tar.gz
  • 测试环境 开源Cassandra测试环境 表1 开源Cassandra测试环境 名称 开源Cassandra集群 Cassandra版本 3.11.5 集群节点数 3 操作系统版本 Centos7.4 ECS规格 通用增强型4vCPUs | 16GB 通用增强型8vCPUs | 32GB 通用增强型16vCPUs | 64GB 通用增强型32vCPUs | 128GB GaussDB(for Cassandra)测试环境 表2 GaussDB(for Cassandra)测试环境 名称 GaussDB(for Cassandra)集群 区域 华东-上海二 集群节点 3 可用区 可用区三 版本 3.11 规格 4vCPUs | 16GB 8vCPUs | 32GB 16vCPUs | 64GB 32vCPUs | 128GB
  • 事件监控简介 事件监控提供了事件类型数据上报、查询和告警的功能。方便您将业务中的各类重要事件或对云资源的操作事件收集到云监控服务,并在事件发生时进行告警。 事件即云监控服务保存并监控的GaussDB(for Influx)资源的关键操作,您可以通过“事件”了解到谁在什么时间对系统哪些资源做了什么操作,如修改实例名称、规格变更等。 事件监控为您提供上报自定义事件的接口,方便您将业务产生的异常事件或重要变更事件采集上报到云监控服务。 事件监控默认开通,您可以在事件监控中查看系统事件和自定义事件的监控详情,目前支持的系统事件请参见事件监控支持的事件说明。 父主题: 事件监控
  • 如何使用索引 创建索引 CREATE INDEX artist_names ON playlists( artist ); 注意:如果原表中有大量数据,会涉及到索引数据的重建,只有当索引数据重建完成以后才能查询索引。 您可以通过查询系统的“IndexInfo”,查看索引是否重建完成。如果有您创建的索引的名字,表示索引数据已经重建完成。 图3 查询结果 通过直接指定索引列,查询索引。 图4 查询结果 每张表可以创建多个索引,且索引会影响写入性能。
  • 二级索引原理 二级索引的实现其实就是创建一张隐式的表,该表的Primary Key是创建索引的列,该表的值是原表的Primary Key。 假设有一张playlists表,表结构如下: CREATE TABLE playlists ( id int, song_id int, song_order int, album text, artist text, title text, PRIMARY KEY (id, song_id)); 查询结果如下: 图1 查询结果 如果对artist字段建立索引,则索引隐式的表的结构如下所示: 图2 查询结果 其中,artist是索引表的Primary Key,id列、song_id列是索引表的普通列,即原表的Primary Key。
  • 可能原因 客户端的并发数受限于Driver的配置参数,主要和Host个数,Session个数,ConnectionsPerHost,MaxRequestsPerConnection这几个参数相关。 例如:用户启动一个Cluster,一个Cluster建立了一个Session,集群中有3个Host, ConnectionsPerHost设置为2,MaxRequestsPerConnection使用默认值128,则该Session总的最大并发请求数为768,单个节点最大请求数为256。 详细的参数解析请见官方文档。
  • 解决方案 通过查看监控指标,观察单个节点的CPU使用率、读写pending、读写时延等指标的使用情况。 如果单个节点负载已经达到上限,则需要进行节点个数扩容,具体操作请参见添加节点。 如果单个节点负载还处于较低水平,则需要调整Driver端的配置。 将“ConnectionsPerHost”调大, 但需要所有连接对该集群总的连接数,不超过用户设置的告警阈值。 将“MaxRequestsPerConnection”调大 ,调整时,不要超过单个节点的负载能力,需要观察CPU,读写时延,读写pending个数指标。
  • 使用须知 默认情况下,一个租户可以创建500条安全组规则。 为一个安全组配置过多的安全组规则会增加首包延时,因此,建议一个安全组内的安全组规则不超过50条。 目前一个GaussDB(for Redis)实例仅允许绑定一个安全组。 内网和公网连接实例时,需要配置的安全组规则请参见表1。 表1 安全组规则说明 场景 配置的安全组规则说明 内网连接实例 使用内网连接GaussDB(for Redis)实例时,配置安全组规则分为以下两种情况: 若用户有一个GaussDB(for Redis)实例,想用一个ECS连接时,此ECS与GaussDB(for Redis)实例在相同安全组时,默认ECS与GaussDB(for Redis)实例互通,无需配置安全组规则。 ECS与GaussDB(for Redis)实例在不同安全组时,需要为GaussDB(for Redis)和ECS分别配置安全组规则。 配置GaussDB(for Redis)安全组规则:为GaussDB(for Redis)所在安全组配置相应的入方向规则,具体操作请参见操作步骤。 配置ECS安全组规则:安全组默认规则为出方向上数据报文全部放行,此时,无需对ECS配置安全组规则。当在ECS所在安全组为非默认安全组且出方向规则非全放通时,需要为ECS所在安全组配置相应的出方向规则。具体操作请参见《弹性云服务器用户指南》中“配置安全组规则”章节。 公网连接实例 使用公网连接GaussDB(for Redis)实例时,需要为GaussDB(for Redis)所在安全组配置相应的入方向规则。具体操作请参见操作步骤。
  • 变更计费模式概述 在购买GaussDB(for Redis)后,如果发现当前计费模式无法满足业务需求,您可以变更计费模式。支持变更计费模式的GaussDB(for Redis)计费项如表1所示。 表1 支持变更计费模式的GaussDB(for Redis)计费项 计费项 变更说明 相关文档 实例规格(vCPU和节点数量) 变更GaussDB(for Redis)实例的计费模式会同时变更计算资源(vCPU和节点数量)的计费模式。 将GaussDB(for Redis)实例的计费模式从按需计费转为包年/包月,可以让您享受一定程度的价格优惠。 将GaussDB(for Redis)实例的计费模式从包年/包月转为按需计费,可以帮助您回收部分成本,并更加灵活地使用GaussDB(for Redis)资源。 说明: 包年/包月计费模式到期后,按需计费模式才会生效。 按需转包年/包月 包年/包月转按需 EIP 包年/包月EIP支持到期后转为按需、按带宽计费EIP。 按需、按带宽计费EIP支持转为包年/包月EIP。 按需、按带宽计费EIP支持和按需、按流量计费EIP互转。 具体变更方式可参考图1。 按需转包年/包月 包年/包月转按需 图1 EIP计费模式变更 父主题: 变更计费模式
  • 相关知识 创建集群实例。 如下代码示例,可以快速创建一个集群实例: Cluster cluster = Cluster.builder() .withClusterName("myCluster") //集群名称可选 .addContactPoint("127.0.0.1") // 连接点,业务连接集群时第一次连接的节点IP,可配置多个 .build(); 设置集群配置。 必须要指定的选项是指定连接点(ContactPoint),一般情况下建议配置三个连接点IP,这样当其中一个无法连接时,还可以尝试其他的连接点。 可以配置的配置项有: AuthProvider:认证方式 LoadBalancingPolicy:负载均衡的策略。负载均衡策略决定了业务请求到Cassandra集群的负载分流的方式, 建议设置为RoundRobinPolicy,这样保持压力能够随机均匀的落在整个集群中。 可选项有DCAwareRoundRobinPolicy,HostFilterPolicy,LatencyAwarePolicy,RoundRobinPolicy,TokenAwarePolicy和WhiteListPolicy。 Metrics:计量相关 NettyOptions:Cassandra driver使用Netty实现作为内部异步编程框架,所以暴露了一些options给用户自定义配置。 QueryOptions:查询相关options,可以设置查询一致性级别、设置fetch_size、设置刷新节点拓扑频率、刷新元数据频率等。 ReconnectionPolicy:当节点连接断开以后的重连策略,可以指定如下重连策略: ConstantReconnectionPolicy:常数级别的重连策略 ExponentialReconnectionPolicy:指数递增重连策略 RetryPolicy:重试策略,当请求失败的时候,会根据指定的重试策略进行再次请求,默认为DefaultRetryPolicy。 其他可选的重试策略还有:DowngradingConsistencyRetryPolicy,FallthroughRetryPolicy,IdempotenceAwareRetryPolicy和LoggingRetryPolicy,用户也可以根据业务自行定制重试策略。 Session会话。 正常情况下,session和keyspace是不绑定的,所以在查询的时候是需要指定表的keyspace的,如下所示: Session session = cluster.connect(); session.execute("select * from myKeyspace.myTable where id = 1"); //需要手动指定myKeysapce的keyspace前缀 以下是几种绑定keysapce的常见方法: 创建session会话时候指定keyspace Session session = cluster.connect("myKeyspace"); 查询指定keyspace前缀 session.execute("select * from otherKeyspace.otherTable where id = 1"); session.execute 切换keyspace session.execute("USE myKeyspace"); CRUD(增删改查)操作 直接使用CQL语句实现增删改查操作 //创建表 session.execute("CREATE TABLE test (k int,p int,s int ,v int,PRIMARY KEY (k, p));"); //插入 session.execute("INSERT INTO test(k, p, v) VALUES (0, 3, 1);"); //查询 session.execute("SELECT * FROM test;"); //更新 session.execute("UPDATE test SET v=100 where k = 0 and p = 3;") //删除 session.execute("DELETE FROM test where k = 0 and p = 3;") 使用QueryBuilder //查询 ResultSet rs = session.execute( QueryBuilder.select("k", "p", "v", "s") .from("keyspace", "test") .where(QueryBuilder.eq("k", 0)) .and(QueryBuilder.eq("p", 3)); //插入 session.execute( QueryBuilder.insertInto("keyspace", "test") .values(new String[]{"k", "p", "v"}, new Object[]{0, 3, 0})); //更新 session.execute( QueryBuilder.update("keyspace", "test") .with(QueryBuilder.set("v", 100)) .where(QueryBuilder.eq("k", 0)) .and(QueryBuilder.eq("p", 3)); //删除 session.execute(QueryBuilder.delete() .from("keyspace", "test") .where(QueryBuilder.eq("k", 0)) .and(QueryBuilder.eq("p", 3)) 使用PreparedStatement Cassandra也有类似于JDBC那样使用预编译占位符,当使用PreparedStatement的时候,Cassandra server端会解析query语句并且在server端进行缓存,然后返回一个唯一标识符给cassandra driver。 如下图所示: 图1 原理图 当用户绑定并且执行编译statement时,cassandra driver只会发送唯一标识符和数据,cassandra server会跳过解析query语句过程。 图2 原理图 预编译占位符在重复执行大量相同CQL,只是数据不一样的场景性能上有很大优势。 private static final String GET_TEST = "select * from test where k = ? and p = ?;"; private static final String INSERT_TEST = "INSERT INTO test(k, p, v) VALUES (?, ?, ?);"; private static final String UPDATE_TEST = "UPDATE test SET v=100 where k = ? and p = ?;"; private static final String DELETE_TEST = "DELETE FROM test where k = ? and p = ?;"; //查询 PreparedStatement prepareStatement = session.prepare(GET_TEST); BoundStatement bindStatement = new BoundStatement(prepareStatement).bind(0,3); ResultSet rs = session.execute(bindStatement); //插入 PreparedStatement prepareStatement = session.prepare(INSERT_TEST); BoundStatement bindStatement = new BoundStatement(prepareStatement) .bind(0, 3, 0); session.execute(bindStatement); //更新 PreparedStatement prepareStatement = session.prepare(UPDATE_TEST); BoundStatement bindStatement = new BoundStatement(prepareStatement) .bind(0, 3); session.execute(bindStatement); //删除 PreparedStatement prepareStatement = session.prepare(DELETE_TEST); BoundStatement bindStatement = new BoundStatement(prepareStatement) .bind(0, 3); session.execute(bindStatement); BATCH操作 cassandra driver也支持用户批量进行插入操作,可以将多个statement添加进BatchStatement统一执行。 如下代码示例: Session session = SessionRepository.getSession(); //插入 BoundStatement insertBind = new BoundStatement( session.prepare("insert into keysapce.test(k, p, v) values(?,?,?);")) .bind(0, 3, 0); //更新 BoundStatement updateBind = new BoundStatement( session.prepare("update keyspace.test set v=? where k=? and p=?;")) .bind(0, 3, 100"); //删除 BoundStatement deleteBind = new BoundStatement( session.prepare("delete from keyspace.test where k=? and p=?;")) .bind(1, 3); // GaussDB(for Cassandra)只支持unlogged batch BatchStatement batchStatement = new BatchStatement(Type.UNLOGGED); batchStatement.add(insertBind); batchStatement.add(updateBind); batchStatement.add(deleteBind); session.execute(batchStatement);
  • 操作步骤 获取GaussDB(for Cassandra)实例的内网IP地址、端口。 内网IP地址和端口的获取方法请参见查看IP地址和端口。 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。 编辑连接GaussDB(for Cassandra)实例的代码。 import com.datastax.driver.core.*; Cluster cluster = null; try { cluster = Cluster.builder() .addContactPoint("127.0.0.1")//此处为步骤1中获取到的GaussDB(for Cassandra)实例的内网IP .withPort(8635) //此处为步骤1中获取到的GaussDB(for Cassandra)实例的端口 .build(); Session session = cluster.connect(); ResultSet rs = session.execute("select release_version from system.local"); Row row = rs.one(); System.out.println(row.getString("release_version")); } finally { if (cluster != null) cluster.close(); } 运行示例代码,确认结果是否正常。
  • 使用须知 每个GaussDB(for Redis)实例最多能创建200个帐号。 执行帐号变更后,需10s生效。 在通过备份恢复到新实例时,原实例的帐号信息不会继承。 创建帐号需要满足表1规则。 表1 参数规则 参数 规则 示例 帐号名称 不能为空。 长度不超过36个字符。 以字母开头,只能包含数字、英文字母、下划线、中划线。 Organization 权限 读写。 只读。 读写 数据库 授权所有数据库。 未授权数据库。 已授权数据库。 说明: 用户可以根据自己的需要在数据库右边“添加”数据库。 用户可以根据自己的需要选择需要授权的数据库。 此处“数据库”对应开源redis的“DB”。 授权所有数据库 密码 不能为空。 长度为8~32位。 密码需包含大写字母、小写字母、数字和特殊字符中的至少两种,支持的特殊字符为~ ! @ # % ^ * - _ = +? $ () &。 nosql123456
  • 使用须知 实例状态为“正常”、“异常”、“恢复检查中”,支持重启实例。 重启实例后,该实例下所有节点将会被重启。 重启实例会导致服务中断,请谨慎操作。请在业务低峰期重启,重启前请做好业务安排并确保应用有重连机制。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《统一身份认证服务用户指南》的内容。
  • 场景示例:核对资源用量是否与实际相符 假设用户在2023/04/08 10:09:06购买了一个按需计费GaussDB(for Redis)实例,并在2023/04/08 12:09:06时刻将其删除。 GaussDB(for Redis)实例流水账单 按需计费GaussDB(for Redis)实例按秒计费,每一个小时整点结算一次费用,您可以在流水账单中核对每一个计费周期的信息是否和实际相符,流水账单中计费资源是分开计费的,以“GaussDB(for Redis)存储”为例,具体如表1所示。 表1 云数据库 GaussDB(for Redis)流水账单 产品类型 云数据库 GaussDB(for Redis) 产品 GaussDB(for Redis)存储 计费模式 按需 消费时间 2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段计费系统将生成6笔流水账单,对应每一个计费周期,分别如下: 2023/04/08 10:09:06 ~ 2023/04/08 11:00:00 2023/04/08 11:00:00 ~ 2023/04/08 12:00:00 2023/04/08 12:00:00 ~ 2023/04/08 12:09:06 官网价 官网价=使用量*单价*容量 本例中,在第一个计费周期内GaussDB(for Redis)的使用量为3054秒,单价可在云数据库 GaussDB NoSQL价格详情中查询,以0.00378元/GB/小时为例,容量为40GB,那么官网价=(3054 ÷ 3600) * 0.00378 * 40 = 0.128268 元。同理,您可以计算剩余计费周期内资源的官网价。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 抹零金额 华为云产品定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。而在实际扣费时,仅扣除到小数点后2位,小数点后第3位到第8位部分金额会被舍弃,这种舍弃部分的金额称作抹零金额。 以第一个计费周期为例,抹零金额为:0.008268 元 应付金额 应付金额=官网价-优惠金额-抹零金额 以第一个计费周期为例,假设优惠金额为0,那么应付金额=0.128268 - 0 - 0.008268 = 0.12 元。 GaussDB(for Redis)实例明细账单 明细账单可以通过多维度展示客户账单的详细信息。一般通过设置统计维度为“按使用量”,统计周期为“按账期”来统计资源在某个月份的总开销,以“GaussDB(for Redis)存储”为例,建议您核对表2所示的信息是否和实际相符。 表2 云数据库 GaussDB(for Redis)明细账单 产品类型 云数据库 GaussDB(for Redis) 产品 GaussDB(for Redis)存储 计费模式 按需 资源名称/ID GaussDB(for Redis)的名称和ID 例如:nosql-b388,21e8811a64bf4de88bc2e2556da17983in12 规格 GaussDB(for Redis)存储 使用量类型 按需计费云数据库GaussDB(for Redis)的使用量类型为“时长” 单价 按需计费模式为简单定价(使用量*单价)时提供单价信息,其他的定价(如EIP公网带宽的阶梯定价)等不提供单价。 按需计费云数据库GaussDB(for Redis)属于简单定价,您可以在云数据库 GaussDB NoSQL价格详情中查中查询单价。 单价单位 在云数据库 GaussDB NoSQL价格详情中查中查询到的单价单位:元/GB/小时 使用量 按产品单价单位显示使用量,GaussDB(for Redis)的单价单位为元/GB/小时,因此使用量以小时为单位。本例中,2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段总计使用量为2小时。 使用量单位 小时 官网价 官网价=使用量*单价*容量 本例中,使用量为2小时,单价可在云数据库 GaussDB NoSQL价格详情中查中查询,以0.00378元/GB/小时为例,容量为40GB,那么官网价=2 * 0.00378 * 40 = 0.3024 元。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 应付金额 用户使用云服务享受折扣优惠后需要支付的费用金额。
  • 支持审计的关键操作列表 通过云审计服务,您可以记录与GaussDB(for Influx)相关的操作事件,便于日后的查询、审计和回溯。 表1 GaussDB(for Influx)的关键操作列表 操作名称 资源类型 事件名称 创建实例 instance NoSQLCreateInstance 删除实例 instance NoSQLDeleteInstance 扩容节点 instance NoSQLEnlargeInstance 缩容节点 instance NoSQLReduceInstance 重启实例 instance NoSQLRestartInstance 恢复到新实例 instance NoSQLRestoreNewInstance 磁盘扩容 instance NoSQLExtendInstanceVolume 重置密码 instance NoSQLResetPassword 修改实例名称 instance NoSQLRenameInstance 规格变更 instance NoSQLResizeInstance 绑定弹性公网IP instance NoSQLBindEIP 解绑弹性公网IP instance NoSQLUnBindEIP 实例冻结 instance NoSQLFreezeInstance 实例解冻 instance NoSQLUnfreezeInstance 创建备份 backup NoSQLCreateBackup 删除备份 backup NoSQLDeleteBackup 设置备份策略 backup NoSQLSetBackupPolicy 添加实例标签 tag NoSQLAddTags 修改实例标签 tag NoSQLModifyInstanceTag 删除实例标签 tag NoSQLDeleteInstanceTag 创建参数模板 parameterGroup NoSQLCreateConfigurations 修改参数模板 parameterGroup NoSQLUpdateConfigurations 修改实例参数 parameterGroup NoSQLUpdateInstanceConfigurations 复制参数模板 parameterGroup NoSQLCopyConfigurations 重置参数模板 parameterGroup NoSQLResetConfigurations 应用参数模板 parameterGroup NoSQLApplyConfigurations 删除参数模板 parameterGroup NoSQLDeleteConfigurations 删除扩容失败的节点 instance NoSQLDeleteEnlargeFailNode 切换SSL instance NoSQLSwitchSSL 修改实例安全组 instance NoSQLModifySecurityGroup 实例导出参数模板 instance NoSQLSaveConfigurations 回收站策略 instance NoSQLModifyRecyclePolicy 父主题: 实例操作审计
  • 事件监控简介 事件监控提供了事件类型数据上报、查询和告警的功能。方便您将业务中的各类重要事件或对云资源的操作事件收集到云监控服务,并在事件发生时进行告警。 事件即云监控服务保存并监控的GaussDB(for Mongo)资源的关键操作,您可以通过“事件”了解到谁在什么时间对系统哪些资源做了什么操作,如修改实例名称、规格变更等。 事件监控为您提供上报自定义事件的接口,方便您将业务产生的异常事件或重要变更事件采集上报到云监控服务。 事件监控默认开通,您可以在事件监控中查看系统事件和自定义事件的监控详情,目前支持的系统事件请参见事件监控支持的事件说明。 父主题: 事件监控
  • 事件监控简介 事件监控提供了事件类型数据上报、查询和告警的功能。方便您将业务中的各类重要事件或对云资源的操作事件收集到云监控服务,并在事件发生时进行告警。 事件即云监控服务保存并监控的GaussDB(for Redis)GaussDB(for Redis)资源的关键操作,您可以通过“事件”了解到谁在什么时间对系统哪些资源做了什么操作,如修改实例名称、规格变更等。 事件监控为您提供上报自定义事件的接口,方便您将业务产生的异常事件或重要变更事件采集上报到云监控服务。 事件监控默认开通,您可以在事件监控中查看系统事件和自定义事件的监控详情,目前支持的系统事件请参见事件监控支持的事件说明。 父主题: 事件监控
  • 使用须知 删除操作无法恢复,请谨慎操作。 删除节点时,您可以联系客服,选择1s到5min的节点连接时间(节点连接时间适用于所有节点),断开长连接。 如果搭建双活关系,不允许在主实例和备实例同时进行添加节点、删除节点和规格变更操作。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《统一身份认证服务用户指南》的内容。
  • 操作步骤 在相同区域创建两个不同的VPC。 登录虚拟私有云控制台。 单击“创建虚拟私有云”。 图1 创建虚拟私有云 在基本信息页面配置VPC相关参数。 图2 配置VPC参数 表1 VPC1配置信息 参数配置信息 说明 示例 区域 请选择靠近您客户的区域,可以降低网络时延、提高访问速度。 华东-上海一 名称 VPC名称。 vpc-10-0-master IPv4网段 VPC的地址范围,VPC内的子网地址必须在VPC的地址范围内。 10.0.0.0/24 子网IPv4网段 子网的地址范围,需要在VPC的地址范围内。 10.0.0.0/24 剩余参数使用默认配置即可。 按照1.c中的方法再创建一个不同的VPC。 图3 配置VPC信息 表2 VPC2配置信息 参数配置信息 说明 示例 区域 此处选择和VPC1相同的区域。 华东-上海一 名称 VPC名称。 vpc-10-1-slave IPv4网段 此处IPv4网段必须和VPC1所在的网段不同。 10.1.0.0/24 子网IPv4网段 子网的地址范围,需要在VPC的地址范围内。 10.1.0.0/24 创建对等连接。 登录虚拟私有云控制台。 在界面右侧详情区域单击“创建对等连接”。 图4 创建对等连接 根据界面提示配置参数,其中“帐户”选择“当前帐户”。 图5 配置对等连接参数 表3 对等连接配置信息 参数名称 说明 示例 名称 对等连接名称。 peering-1264 本端VPC 本端VPC。可在下拉框中选择。 vpc-10-0-master 本端VPC网段 本端VPC网段。 10.0.0.0/24 帐户 建立对等连接的帐号: 当前帐户:表示在同一个帐户内、同一个区域下的不同VPC间建立对等连接。 其他帐户:表示在同一个区域下的不同帐户的VPC间建立对等连接。 当前帐户 对端项目 对端项目名称,默认为当前项目的项目名称。 cn-east-3 对端VPC 对端VPC。同帐户Peer VPC可在下拉框中选择。 vpc-10-1-slave 对端VPC网段 对端VPC网段。 10.1.0.0/24 单击“确定”。 查看对等连接。 图6 查看对等连接 添加VPC对等连接路由。 先添加本端路由。 在对等连接列表中,单击待添加本端VPC路由的对等连接名称。进入对等连接详情页。 选择“本端路由”页签,并根据界面提示,单击路由表超链接。进入本端VPC默认路由表的基本信息页签。 图7 本端路由 单击“添加路由”,在路由表添加路由。 图8 添加路由 在添加路由弹框中配置路由参数。 图9 配置路由参数 表4 路由配置信息 参数名称 说明 示例 目的地址 对端VPC的地址。 10.1.0.0/24 下一跳类型 对等连接 对等连接 下一跳 选择当前对等连接的名称。 peering-1264 描述 路由的描述信息,非必填项。 - 单击“确定”,在本端路由页面可以查看到已添加好的路由信息。 图10 查看本端路由 再添加对端路由。 选择“对端路由”页签,并根据界面提示,单击路由表超链接。进入对端VPC默认路由表的基本信息页签。 图11 对端路由 单击“添加路由”,在路由表添加路由。 图12 添加路由 在添加路由弹框中配置路由参数。 图13 配置路由参数 表5 路由配置信息 参数名称 说明 示例 目的地址 本端VPC的地址。 10.0.0.0/24 下一跳类型 对等连接 对等连接 下一跳 选择当前对等连接的名称。 peering-1264 描述 路由的描述信息,非必填项。 - 单击“确定”,在对端路由页面可以查看到已添加好的路由信息。 图14 查看对端路由 至此,已打通两个VPC之间的网络,后续需要在同一区域的这两个VPC下创建GaussDB(for Redis)实例,具体操作请参见购买实例。
  • 使用JedisCluster访问 样例代码 import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; public class ClusterTests { private static void testCluster() { String pwd = "a"; JedisCluster cluster = new JedisCluster(new HostAndPort("172.xx.xx.xx", 8635), 200, 2000, 5, pwd, new GenericObjectPoolConfig()); System.out.println(cluster.hgetAll("676296")); System.out.println(cluster.set("key1", "value1")); } public static void main(String[] args) { testCluster(); } }
  • 使用JedisPool访问(推荐) 样例代码 import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class JedisPoolTests { private static void testPool() { String pwd = "a"; JedisPool pool = new JedisPool(new GenericObjectPoolConfig(), "172.xx.xx.xx", 8635, 2000, pwd); Jedis jedis = pool.getResource(); try { System.out.println(jedis.hgetAll("676296")); System.out.println(jedis.set("key1", "value1")); } finally { jedis.close(); } pool.destroy(); } public static void main(String[] args) { testPool(); } }
  • 使用须知 该功能目前为公测阶段,如需使用,请联系客服申请开通。 搭建双活关系时,需要确保跨区域VPC网络互通,具体操作请参见跨区域VPC互通。 搭建双活关系前,需要在指定的区域提前创建好目标实例,且规格不小于当前实例。如需放开规格限制,你可以联系客服申请,需注意目标实例的规格相较于源实例的规格不能过小,否则可能会导致目标实例CPU或内存资源不足。 搭建双活关系前,备实例不能有任何额外的表。 双活的备实例的管理员密码必须与主实例保持一致。 双活搭建完成以后,如果解除双活关系不能手动清理备实例表(drop操作),否则无法重新再搭建双活实例。 当前实例为搭建双活关系中的主实例,负责备份数据并将数据传输到目标实例。
  • 连接方式介绍 GaussDB(for Influx)提供使用内网、公网和程序代码的连接方式。 表1 连接方式 连接方式 使用场景 说明 内网连接 介绍使用内网IP或者负载均衡地址连接GaussDB(for Influx)实例的方法。 该方法适用于当应用部署在弹性云服务器上,且该弹性云服务器与数据库实例处于同一区域、同一VPC内时连接数据库实例。 为了提升可靠性、消除单点故障影响,推荐使用负载均衡地址连接实例。 安全性高,可实现数据库实例的较好性能。 公网连接 介绍使用弹性公网IP连接GaussDB(for Influx)实例的方法。 该方法适用于不能通过内网IP地址访问数据库实例时,单独绑定弹性公网IP连接弹性云服务器(或公网主机)与数据库实例。 降低安全性。 为了获得更快的传输速率和更高的安全性,建议您将应用迁移到与您的数据库实例在同一VPC子网内,使用内网连接。 用户需要购买弹性公网IP,请参见弹性公网IP计费说明。 程序代码连接 介绍使用GO语言、Java语言、Python语言连接GaussDB(for Influx)实例的方法和示例。 - 父主题: 连接实例
  • 使用须知 mongoexport和mongoimport工具仅支持全量数据迁移。为保障数据一致性,迁移操作开始前请停止源数据库的相关业务,并停止数据写入。 建议您尽量选择在业务低峰期迁移数据,避免在迁移过程中对业务造成影响。 不支持迁移系统库admin和local。 确保源库中系统库admin和local没有创建业务集合,如果已经有业务集合,必须在迁移前将这些业务集合从admin和local库中迁移出来。 导入数据之前,确保源端有必要的索引,即在迁移前删除不需要的索引,创建好必要的索引。 如果选择迁移分片集群,必须在目标库创建好要分片的集合,并配置数据分片。同时,迁移前必须要创建好索引。
  • 前提条件 准备弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备。 通过内网连接GaussDB(for Mongo) 数据库实例,需要创建并登录弹性云服务器,请参见购买弹性云服务器和登录弹性云服务器。 通过公网地址连接GaussDB(for Mongo) 数据库实例,需具备以下条件。 为实例中的节点绑定公网地址,如何绑定公网地址,请参见绑定弹性公网IP。 保证本地设备可以访问GaussDB(for Mongo) 数据库绑定的公网地址。 在已准备的弹性云服务器或可访问GaussDB(for Mongo) 数据库的设备上,安装数据迁移工具。 安装数据迁移工具,请参见如何安装MongoDB客户端。 MongoDB客户端会自带mongoexport和mongoimport工具。
  • 兼容接口和版本 介绍GaussDB(for Redis)目前支持的兼容接口和版本。 表1 兼容接口和版本 兼容接口 实例类型 版本 Redis Proxy通用型 “通用型”通过ELB+proxy代理层实现自动负载均衡,兼容单机、主备、Codis集群、Cluster集群、Sentinel哨兵等多种实例架构。推荐业务程序使用最简单的StandAlone模式客户端轻松接入。 5.0及以下版本 父主题: 产品介绍
  • 显示的创建一个集合 也可以通过 CreateCollection()方法显示的创建一个集合,并在创建时候指定该集合的属性。 db:= client.Database("test") ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) defer cancel() sizeInBytes := int64(200000) testCollection := db.CreateCollection(ctx,"testCollection",&options.CreateCollectionOptions{SizeInBytes: &sizeInBytes})
共100000条