华为云用户手册

  • 使用须知 实例状态为“正常”、“异常”、“恢复检查中”,支持重启实例。 重启实例会导致服务中断,请谨慎操作。请在业务低峰期重启,重启前请做好业务安排并确保应用有重连机制。 重启实例后,该实例下所有节点将会被重启。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《 统一身份认证 服务用户指南》的内容。
  • 测试环境 区域:华北-北京四。 可用区:可用区1。 弹性云服务器(Elastic Cloud Server,简称E CS ):规格选择h3.4xlarge.2,16U32GB,操作系统镜像使用CentOS 7.5 64位版本。 压测数据模型:单行1KB大小。 压测平均CPU负载:50%。 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格。 表1 实例规格 编号 规格 cluster1 4U16GB cluster2 8U32GB cluster3 16U64GB cluster4 32U128GB
  • 迁移原理 本方案分为两个模块全量迁移和增量迁移,需要创建弹性云服务器作为数据中转。GeminiX工具具备分布式迁移的能力,支持多台机器并行迁移业务多张表。 全量迁移阶段首先将DynamoDB提供的Scan接口将全量数据以分段方式读取出来写入到GeminiDB (兼容DynamoDB API)中。 增量迁移阶段使用DynamoDB的流接口将增量数据同步到GeminiDB (兼容DynamoDB API)中。
  • 前提条件 已成功创建GeminiDB (兼容DynamoDB API)实例,且实例状态正常。 已创建弹性云服务器,其中弹性云服务器规格为16U64G,磁盘空间大于100GB。创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“创建弹性云服务器”章节。 AWS DynamoDB与弹性云服务器之间通过专线传输数据,请确保弹性云服务器和AWS DynamoDB以及GeminiDB (兼容DynamoDB API)网络通畅。 GeminiDB (兼容DynamoDB API)存储容量不得小于AWS DynamoDB存储容量。 AWS DynamoDB开启流接口。
  • 在费用中心续费 登录管理控制台。 单击“控制台”页面上方“费用与成本”,在下拉菜单中选择“续费管理”。 进入“续费管理”页面。 自定义查询条件。 可在“手动续费项”、“自动续费项”、“到期转按需项”、“到期不续费项”页签查询全部待续费资源,对资源进行手动续费的操作。 图3 续费管理 所有需手动续费的资源都可归置到“手动续费项”页签,具体操作请参见如何恢复为手动续费。 手动续费资源。 单个续费:在资源页面找到需要续费的资源,单击操作列的“续费”。 图4 单个续费 批量续费:在资源页面勾选需要续费的资源,单击列表左上角的“批量续费”。 图5 批量续费 选择续费时长,判断是否勾选“统一到期日”,将到期时间统一到各个月的某一天(详细介绍请参见统一包年/包月资源的到期日)。确认配置费用后单击“去支付”。 图6 续费确认 进入支付页面,选择支付方式,确认付款,支付订单后即可完成续费。
  • 前提条件 GeminiDB Cassandra实例需要绑定弹性公网IP并设置安全组规则,确保可以通过弹性云服务器访问弹性公网IP,具体操作请参见给GeminiDB Cassandra实例绑定弹性公网IP和给GeminiDB Cassandra实例设置安全组规则。 创建弹性云服务器,以Linux操作系统为例。详情请参见《弹性云服务器快速入门》中购买弹性云服务器的内容。 根据已购弹性云服务器的CPU类型,选择下载并安装对应的Cassandra客户端。 弹性云服务器的CPU类型为x86时,请下载Cassandra客户端安装包。 弹性云服务器的CPU类型为鲲鹏时,请下载Cassandra客户端安装包。 使用SSL方式连接实例时,需要提前获取SSL证书,具体操作请参见下载SSL证书。
  • 入门实践 当您购买并连接了GeminiDB Cassandra数据库实例后,可以根据自身的业务需求使用GeminiDB Cassandra提供的一系列常用实践。 表1 常用最佳实践 实践 描述 数据库规范 基本设计规范 介绍GeminiDB Cassandra的基本设计规范。 数据库对象使用规范 介绍数据库对象的使用规范。 数据库使用约束规范 介绍数据库的使用约束规范。 查询规范 介绍GeminiDB Cassandra的查询规范。 变更实例 修改实例名称 GeminiDB Cassandra支持修改数据库实例名称,以方便您区分和识别实例。 重置管理员密码 GeminiDB Cassandra支持重置数据库管理员密码,建议您定期修改密码,以提高系统安全性,防止出现密码被破解等安全风险。 变更实例的CPU和内存规格 当用户购买的实例的CPU和内存规格无法满足业务需要时,可以在控制台进行CPU和内存规格变更。 数据备份 管理自动备份 介绍如何在数据库实例的备份时段中创建数据库实例的自动备份,系统根据您指定的备份保留期保存数据库实例的自动备份。 管理手动备份 介绍如何为数据库实例手动备份数据,用户可以通过手动备份恢复数据,从而保证数据可靠性。 管理跨区域备份 介绍如何为数据库实例设置跨区域备份策略,用户可以在异地区域使用目标区域的备份文件恢复到新的GeminiDB Cassandra实例,用来恢复业务。 管理库表级备份 介绍如何为数据库实例创建库表级备份,当数据库或表被恶意或误删除,可依赖实例的备份保障数据安全。 数据恢复 恢复备份到新实例 介绍如何使用已有的自动备份或手动备份恢复实例数据到新建实例,恢复后的数据与该备份生成时的实例数据一致。 恢复备份到指定时间点 介绍如何使用已有的自动备份,恢复实例数据到指定时间点。 日志管理 查看和导出慢日志 GeminiDB Cassandra支持查看数据库级别的慢日志,执行时间的单位为ms。通过该日志,可查找出执行效率低的语句,以便优化。 父主题: 快速入门
  • 设计主键应该避免哪些情况 GeminDB Cassandra是一个 分布式数据库 ,数据按照主键分布。如果存在多列主键,则按照数据库的最左匹配原则分布。为避免产生写入热点问题,建议您遵循以下条件: 主键的第一列尽量分散,不建议主键名使用相同的前缀。 避免使用共同前缀或者自增的数据作为主键的第一列或者索引列(例如时间戳列)。 避免使用有明显前缀的字段或者枚举(比如order_type)作为主键的第一列。 如果有类似的情况无法避免,可以利用Hash算法进行打散。例如: 假设原始主键pk是递增的字符串,可以设定新主键pk1 = hash(pk).substring(0,4)+pk,即选取原始主键pk经过Hash算法计算后的结果前4位作为前缀,拼接原始主键pk,最终形成新的主键pk1。
  • 如果数据足够分散,还会存在堆积的热点现象吗 散列的目的是将数据分散到不同的分区,不至于产生热点使某一台服务器终止,其他服务器空闲,充分发挥分布式和并发的优势。 最佳设计示例: 设计md5散列算法,主键设计为[md5(userid).subStr(0,4)][userId][orderid] 。 设计反转,主键设计为[reverse(userid)][orderid]。 设计取模,主键设计为[bucket][timestamp][hostname][log-event]; long bucket = timestamp % numBuckets。 增加随机数,主键设计为[userId][orderid][random(100)]。
  • 常见设计示例 日志类、时间序列数据。列举出三个场景设计主键。 查询某台机器某个指标某段时间内的数据,主键设计为[hostname][log-event][timestamp]。 查询某台机器某个指标最新的几条数据,主键设计为[hostname][log-event][timestamp DESC]。 查询的数据存在只有时间一个维度或某一个维度数据量巨大的情况,主键设计为long bucket = timestamp % numBuckets; [bucket][timestamp][hostname][log-event]。 交易类数据。列举出四个场景设计主键。 查询某个卖家某段时间内的交易记录,主键设计为[seller_id][timestamp][order_number]。 查询某个买家某段时间内的交易记录,主键设计为[buyer_id][timestamp][order_number]。 根据订单号查询,主键设计为[order_number]。 查询中同时满足三张表,一张买家维度表主键设计为[buyer_id][timestamp][order_number]。一张卖家维度表主键设计为[seller_id][timestamp][order_number]。一张订单索引表主键设计为[order_number]。
  • 使用分页 在使用Python driver进行查询时,可以指定每次查询获取的行数,具体为下列样例查询中的fetch_size参数。 query = "SELECT * FROM space3.table3;" # table3 contains 100 rowsstatement = SimpleStatement(query, fetch_size=10) 此后执行该查询,将会每次获取行数为10的页。在缓存(10行)耗尽后会触发获取下一页的请求,并且等待请求返回,会有等待时间相应延迟。 result = session.execute(statement)# 打印当前缓存行数,为10行print(result.current_rows)# 在迭代过程中会自动获取下一页for row in result: print(row)
  • 保存分页状态并复用 保存当前分页状态。 # 保存分页状态web_session['paging_stage'] = results.paging_state 加载并进行复用。 statement = SimpleStatement(query, fetch_size=10)ps = web_session['paging_state']results = session.execute(statement, paging_state=ps) 更多高级用法与介绍可以参考对应driver的使用手册分页章节。
  • 解决方案 在cqlsh同目录下执行如下命令,查找到cqlshrc文件。 touch cqlshrc rm -rf ~/.cassandra/cqlshrc* cqlshrc文件中配置如下内容,并保存。 [csv] field_size_limit = 9223372036854775807 通过cqlsh连接实例时,增加如下参数。 –cqlshrc=cqlshrc 命令示例: cqlsh 127.0.0.1 8635 -u rwuser -p password --cqlshrc=cqlshrc
  • 使用限制 物化视图的primary key必须包含源表的所有primary key,不允许使用静态列。 视图中primary key的所有列必须是“IS NOT NULL”。 任何物化视图中,必须将一个cql行从源表映射到物化视图的另一行,即视图和源表之间的行是逐一对应的。 创建物化视图的select语句的where条件中,不能对视图的非primary key列进行限制,“IS NOT NULL”除外。 图1 示例 不支持使用静态列、counter、superColumn、duration类型。
  • 如何使用物化视图 在源表中插入一条记录,并查询结果。 源表示例: CREATE TABLE person ( id int, name text, addr text, age int, email text, PRIMARY KEY (id, name)); 插入一条记录: insert into person(id, name, age, addr, email) values (0, 'ruby', 26, 'beijing', 'ruby@email.com'); 查看数据插入结果: 图2 查询结果 创建物化视图。 CREATE MATERIALIZED VIEW person_addr AS SELECT * from person WHERE id IS NOT NULL AND addr IS NOT NULL AND name IS NOT NULL primary key (addr, id, name); “system_schema.views”记录了视图和源表的关联关系: 图3 视图与源表的关联关系 不符合该条件的查询不显示,示例:IS NOT NULL。 插入“addr”为“null”的记录。 insert into person(id, name, age, addr, email) values (1, 'mike', 30, null, 'mike@email.com'); 查看源表数据和物化视图数据: 图4 查询结果 删除物化视图。 DROP MATERIALIZED VIEW person_adder; 图5 删除视图
  • 使用DRS服务将其他云上DynamoDB (Web服务)迁移到GeminiDB Cassandra 华为云 数据复制服务 DRS(Data Replication Service)提供数据库零停机的迁移上云体验,支持全量数据迁移和增量数据迁移,为您提供安全稳定高可靠的迁移链路,详情请参考迁移方案概览。 如何使用DRS服务将其他云上DynamoDB (Web服务)迁移到GeminiDB Cassandra,请参考将其他云上DynamoDB (Web服务)迁移到GeminiDB Cassandra。 父主题: 数据迁移
  • COUNT查询 在数据库大的情况下,请不要使用如下语句进行查询,避免出现查询失败的情况。 select count(*) from "test" where sds_uid='100000000000000006250004'; 建议使用如下语句进行查询: select sum(row_count) From system_distributed.size_estimates WHERE keyspace_name='' and table_name=''; 该查询是一个异步后台任务,不能实时查询到完全准确的数值,对数据量评估只能做参考。
  • 性能测试数据 不同测试模型下,不同规格且预置相当数据量,测试的OPS*数据(表格中黑色字体),详见表1 测试数据中加粗内容。 表1 测试数据 节点规格 4U16GB 8U32GB 16U64GB 32U128GB 客户端并发数 32 64 128 256 预置数据量 50GB 100GB 200GB 400GB 读多写少场景 workload-read-mostly 15627 44612 90713 169037 读写均衡场景 workload-read-write-combination 19565 46240 95065 158793 读改写均衡场景 workload-read-modify-write 11768 29488 59332 96964 读更新写混合场景 workload-mixed-operational-analytical 17534 40214 80661 137616 写多读少场景 workload-insert-mostly 23830 44548 67290 111540 OPS:Operation Per Second,数据库每秒执行的操作数。 测试模型编号:测试模型编号对应的测试模型,请参见表2 测试模型。 父主题: 性能白皮书
  • 监控指标 如下监控指标需要在实例节点查看,具体方法请参见查看GeminiDB Cassandra监控指标。 表1 GeminiDB Cassandra支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) nosql005_disk_usage 存储容量使用率 该指标为存储容量使用率。 单位:% 0~100 % GeminiDB Cassandra实例 1分钟 nosql006_disk_total_size 存储容量总容量 该指标为实例的存储容量总容量。 单位:GB ≥ 0 GB GeminiDB Cassandra实例 1分钟 nosql007_disk_used_size 存储容量使用量 该指标为实例的存储容量使用量。 单位:GB ≥ 0 GB GeminiDB Cassandra实例 1分钟 nosql009_dfv_write_delay 存储写时延 该指标用于统计某段时间写入数据到存储层的平均时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 nosql010_dfv_read_delay 存储读时延 该指标用于统计某段时间从存储层读取数据的平均时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra001_cpu_usage CPU使用率 该指标用于统计测量对象的CPU使用率。 单位:% 0~100 % GeminiDB Cassandra实例的节点 1分钟 cassandra002_mem_usage 内存使用率 该指标用于统计测量对象的内存使用率。 单位:% 0~100 % GeminiDB Cassandra实例的节点 1分钟 cassandra003_bytes_out 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量。 单位:Bytes/s ≥ 0 Bytes/s GeminiDB Cassandra实例的节点 1分钟 cassandra004_bytes_in 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量。 单位:Bytes/s ≥ 0 Bytes/s GeminiDB Cassandra实例的节点 1分钟 cassandra014_connections 活动连接数 该指标用于统计当前Cassandra实例节点的活动连接数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra015_read_latency 读耗时 该指标用于统计数据库读请求的平均耗时。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra016_write_latency 写耗时 该指标用于统计数据库写请求的平均耗时。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra037_pending_write 挂起的写任务数 描述当前排队等待的写任务数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra038_pending_read 挂起的读任务数 描述当前排队等待的读任务数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra044_range_slice_latency scan耗时 描述平均scan耗时。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra049_dropped_mutation 写丢弃次数 描述平均写丢弃次数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra052_dropped_read 读丢弃次数 描述平均读丢弃次数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra092_load_info 节点负责的数据量 节点负责的数据量大小。 单位:Bytes ≥ 0 Bytes GeminiDB Cassandra实例的节点 1分钟 cassandra093_write_count_latency 累计写请求 节点启动累计的写请求个数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra094_write_1min_rate 最近一分钟平均写速率 最近一分钟内的平均写速率。 单位:Counts/s ≥ 0 Counts/s GeminiDB Cassandra实例的节点 1分钟 cassandra095_write_p75_latency p75写时延 p75写时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra096_write_p95_latency p95写时延 p95写时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra097_write_p99_latency p99写时延 p99写时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra098_read_count_latency 累计读请求 节点启动累计的读请求个数。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra099_read_1min_rate 最近一分钟平均读速率 最近一分钟内的平均读速率。 单位:Counts/s ≥ 0 Counts/s GeminiDB Cassandra实例的节点 1分钟 cassandra100_read_p75_latency p75读时延 p75读时延 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra101_read_p95_latency p95读时延 p95读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra102_read_p99_latency p99读时延 p99读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra103_range_slice_count_latency 累计range读请求 累计range读请求。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra104_range_slice_1min_rate 最近一分钟平均range读速率 最近一分钟平均range读速率。 单位:Counts/s ≥ 0 Counts/s GeminiDB Cassandra实例的节点 1分钟 cassandra105_range_slice_p75_latency p75range读时延 p75range读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra106_range_slice_p95_latency p95range读时延 p95range读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra107_range_slice_p99_latency p99range读时延 p99range读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra163_write_p999_latency p999写时延 p999写时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra164_read_p999_latency p999读时延 p999读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra165_large_partition_num 大key数量 当前节点大key的数量。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟 cassandra166_write_max_latency 最大写时延 最大写时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra167_read_max_latency 最大读时延 最大读时延。 单位:ms ≥ 0 ms GeminiDB Cassandra实例的节点 1分钟 cassandra168_imbalance_table_num 表数据分布不均匀的个数 表级别的数据分布不均匀的表数量。 单位:Counts ≥ 0 Counts GeminiDB Cassandra实例的节点 1分钟
  • 操作步骤 获取GeminiDB Cassandra实例的内网IP地址、端口。 内网IP地址和端口的获取方法请参见查看GeminiDB Cassandra IP地址和端口。 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。 编辑连接GeminiDB Cassandra实例的代码。 import ( "os")// Default LoadBalancingPolicy RoundRobinHostPolicycluster := gocql.NewCluster("127.0.0.1,127.0.0.2,127.0.0.3")// 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放、使用时解密),确保安全;// 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。username = os.Getenv("EXAMPLE_USERNAME_ENV"),password = os.Getenv("EXAMPLE_PASSWORD_ENV"),cluster.Authenticator = gocql.PasswordAuthenticator{Username: username,Password: password }cluster.Keyspace = "ks1"// connect to the clustersession, err := cluster.CreateSession()if err != nil { log.Fatal(err)}defer session.Close() 运行示例代码,确认结果是否正常。
  • 执行读写 使用 Session.Query 创建查询。查询参数不能用于其他语句,并且不能在开始查询之后进行修改。 要在不读取结果的情况下执行查询,请使用 Query.Exec: err := session.Query(`INSERT INTO tweet (timeline, id, text) VALUES (?, ?, ?)`, "me", gocql.TimeUUID(), "hello world").WithContext(ctx).Exec() 可以通过调用 Query.Scan 读取单行: err := session.Query(`SELECT id, text FROM tweet WHERE timeline = ? LIMIT 1`, "me").WithContext(ctx).Consistency(gocql.One).Scan(&id, &text) 可以使用 Iter.Scanner 读取多行: scanner := session.Query(`SELECT id, text FROM tweet WHERE timeline = ?`, "me").WithContext(ctx).Iter().Scanner() for scanner.Next() { var ( id gocql.UUID text string ) err = scanner.Scan(&id, &text) if err != nil { log.Fatal(err) } fmt.Println("Tweet:", id, text) } // scanner.Err() closes the iterator, so scanner nor iter should be used afterwards. if err := scanner.Err(); err != nil { log.Fatal(err) }
  • 使用须知 实例状态为“正常”、“备份中”、“恢复检查中”、“存储扩容中”,以及个别节点异常时,支持重置密码。 管理员密码重置成功后立刻生效。 创建了同城容灾或搭建了异地双活的实例,主实例和备实例的管理员密码要保持一致。 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《统一身份认证服务用户指南》的内容。 请您尽量在业务低峰期修改,否则可能会造成业务断链。
  • 数据库实例状态 数据库实例状态是数据库实例的运行情况。可以通过管理控制台查看数据库实例状态。 表1 实例状态 状态 说明 正常 数据库实例正常和可用。 异常 数据库实例不可用。 创建中 正在创建数据库实例。 创建失败 数据库实例创建失败。 重启中 正在重启数据库实例。 重置密码中 正在重置管理员密码。 节点扩容中 正在扩容该实例下的节点个数。 节点缩容中 正在删除该实例下的节点。 存储扩容中 正在扩容实例的磁盘容量。 规格变更中 正在变更实例的CPU和内存规格。 备份上传中 正在上传备份文件。 备份中 正在创建数据库备份。 恢复检查中 该实例下的备份正在恢复到新实例。 转包周期中 实例的计费方式正在由“按需计费”转为“包年/包月”。 转按需中 实例的计费方式正在由“包年/包月”转为“按需计费”。 灾备集群创建中 正在创建容灾实例。 容灾关系解除中 删除容灾实例。 SSL切换中 正在开启或关闭SSL安全连接。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。您需前往费用中心充值成功,欠款核销后,冻结的实例才会解冻。 解冻中 欠款核销后,正在解冻数据库实例。 包周期变更资源检查中 包周期实例在进行变更过程中所持续的状态。 父主题: 产品介绍
  • 索引规范 规则1:尽可能把所有查询都设计为主键形式的查询,不要对二级索引过度依赖。 规则2:创建索引后需要等待索引构建完成后才能使用索引字段进行查询。 规则3:避免对索引字段频繁更新。 规则4:不建议重复值过多表列建立索引,比如表有一亿条数据,某一列的数据都是一样的或者少数几种,这种情况不建议在该列建索引列。 规则5:counter列不能进行索引。 规则6:频繁更新或者删除的列,不建议在该列建索引列。 规则7:建议索引配合分区键使用,否则会增加节点间消息转发,造成资源消耗过大导致oom或者cpu飙高。
  • 前提条件 已创建GeminiDB Cassandra实例,且运行状态正常。 已创建弹性云服务器,以Linux操作系统为例。 创建弹性云服务器,详情请参见《弹性云服务器快速入门》中购买弹性云服务器的内容。 根据已购弹性云服务器的CPU类型,选择下载并安装对应的Cassandra客户端。 弹性云服务器的CPU类型为x86时,请下载Cassandra客户端安装包。 弹性云服务器的CPU类型为鲲鹏时,请下载Cassandra客户端安装包。 使用SSL方式连接实例时,需要提前获取SSL证书,具体操作请参见下载SSL证书。
  • 表设计规则 规则1:表的设计要考虑兼容性。 只允许新增字段,不允许删除字段。 规则2:表名和数据库名不超过48字节。 规则3:表默认按照最佳性能规格创建。如果对表性能要求不高,可以创表时指定性能参数“Z00_THROUGHPUT”, 可选项有big、medium、small。默认指定为big,由于存储引擎使用Rocksdb需要预分配内存,所以实例创表数目有一定限制,具体请参见GeminiDB Cassandra创表时需要注意什么。 建议:需要的时候,通过反范式化和冗余来提升读性能。
  • 计费说明 GeminiDB Cassandra的计费项由实例规格费用、存储空间费用、备份空间费用和公网流量费用组成。具体内容如表1所示。 标 * 的计费项为必选计费项。 表1 GeminiDB Cassandra实例计费项 计费项 计费项说明 适用的计费模式 计费公式 * 实例规格 计费因子:vCPU和内存,不同规格的实例类型提供不同的计算和存储能力。 包年/包月、按需计费 实例规格单价 * 购买时长 实例规格单价请参见云数据库 GeminiDB价格详情中的“集群-规格费用”。 * 存储空间 计费因子:存储空间,按统一标准进行计费。 包年/包月、按需计费 存储空间单价 * 存储容量 * 购买时长 请参见云数据库 GeminiDB价格详情中的“集群磁盘空间计费信息”。 备份空间 计费因子:备份空间,按统一标准进行计费。 按需计费 备份空间单价 * 备份收费容量 * 购买时长 请参见云数据库 GeminiDB价格详情中的“备份空间计费信息”。 说明: 计费时长:备份超过免费空间大小的使用时长。 跨区域备份(可选) 计费因子:存储空间,按统一标准进行计费。 按需计费 存储空间单价 x 存储容量 x 购买时长 存储空间单价:0.0009 元/GB/小时 计费因子:跨Region备份流量,按统一标准进行计费。 按存储容量计费 跨Region备份流量单价 x 存储容量 跨Region备份流量单价:0.5 元/GB 公网流量 如有互联网访问需求,您需要购买弹性公网IP。 计费因子:带宽费、流量费和IP保有费。 包年/包月计费模式支持按带宽计费方式,收取带宽费。 按需计费模式支持按带宽计费、按流量计费和加入共享带宽三种计费方式,分别收取带宽费+IP保有费、流量费+IP保有费、带宽费+IP保有费。 包年/包月、按需计费 带宽费支持使用带宽加油包抵扣,流量费支持使用共享流量包抵扣。 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 公网带宽单价请参见弹性 云服务器价格 详情中的“带宽价格”,或者弹性公网IP价格详情。
  • 计费示例 假设您在2023/03/08 15:50:04购买了一个包年/包月GeminiDB Cassandra实例(规格:2 vCPUs 8GB,节点数量:3,存储空间:100GB,备份空间:110GB(赠送100GB,后续收费空间10GB)),计费资源包括实例规格(vCPU、内存、节点数量)、存储空间、备份空间、公网带宽。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 2023/04/08 23:59:59~2023/05/01 23:59:59期间,使用免费备份空间50GB。 2023/05/01 23:59:59~2023/05/08 23:59:59期间,使用计费备份空间10GB,计费时长168小时。 图1给出了上述示例配置的费用计算过程。 图中价格仅为示例,实际计算请以云数据库 GeminiDB价格详情中的价格为准。 图1 包年/包月GeminiDB Cassandra费用计算示例 按需计费模式下,各计费项的计费示例请参见计费示例。
  • 使用须知 正在执行操作的实例不能手动删除,只有在实例操作完成后,才可删除实例。 “按需计费”类型的实例删除后将不再产生费用,实例生成的自动备份会被同步删除,保留的手动备份会继续收取费用。 实例删除后,该实例上的数据以及相关的自动备份将全部被清除,且不可恢复,请谨慎操作。建议您在删除实例前先创建备份,具体操作请参见创建手动备份。 实例删除后,实例下所有节点将同步被删除。 删除的实例在释放后会在回收站保留一段时间,您可在回收站中对实例进行重建操作。
  • 在续费管理页面开通自动续费 登录管理控制台。 单击“控制台”页面上方“费用与成本”,在下拉菜单中选择“续费管理”,进入“续费管理”页面。 自定义查询条件。 可在“自动续费项”页签查询已经开通自动续费的资源。 可对“手动续费项”、“到期转按需项”、“到期不续费项”页签的资源开通自动续费。 图2 续费管理 为包年/包月资源开通自动续费。 单个资源开通自动续费:选择需要开通自动续费的实例,单击操作列“开通自动续费”。 图3 单个资源开通自动续费 批量资源开通自动续费:选择需要开通自动续费的实例,单击列表左上角的“开通自动续费”。 图4 多个资源开通自动续费 选择续费时长,并根据需要设置自动续费次数,单击“开通”。 图5 开通自动续费
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全