华为云用户手册

  • 备份原理 GeminiDB Influx有专门负责备份管理的节点(三个Meta节点中ID最小的Meta节点,后续称为M1节点)。如图1所示,GeminiDB Influx的备份在M1节点上进行,通过对数据进行秒级快照,并将生成的备份文件以压缩包的形式存储在 对象存储服务 (OBS)中,不会额外占据GeminiDB Influx实例的存储空间。备份上传过程中会消耗一定的CPU,因此会存在CPU上涨的现象,一般涨幅范围在5%~15%,该现象属于正常现象。 图1 备份原理
  • 备份方案 GeminiDB Influx实例支持自动备份和手动备份两种方案。 自动备份 您可以在管理控制台设置自动备份策略,系统将会按照自动备份策略中设置的备份时间段和备份周期进行自动备份,并且会按照设置的备份保留天数对备份文件进行存放。 自动备份的备份文件不支持手动删除,可通过修改自动备份策略调整备份保留天数,超出备份保留天数的已有备份文件会被自动删除。 手动备份 手动备份是由用户根据自身业务特点随时启动的数据库实例的全量备份,会一直保存,直到用户手动删除。 建议您定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份恢复数据库,从而保证数据可靠性。 表1 备份方案 备份方案 使用场景 自动备份 系统按照自动备份策略,对数据库进行自动备份,您可以根据业务需求修改自动备份策略。 手动备份 根据自身业务特点手动启动数据库实例的全量备份。
  • 备份存储 GeminiDB Influx的备份数据存储至对象存储服务(Object Storage Service,简称OBS),在提高数据容灾能力的同时有效降低磁盘空间占用。 购买实例存储空间后,GeminiDB Influx将同比例赠送备份存储空间,用于存储备份数据。例如,您购买的实例存储空间为100GB时,会得到赠送的100GB备份存储空间。当备份数据没有超出100GB,将免费存储在OBS上;当备份数据超出100GB,超出部分将根据OBS的计费规则收费,详情请参见OBS计费详情。
  • 如何使用GeminiDB Influx的hint功能 GeminiDB Influx支持hint功能,来提高查询性能。该功能只能用于单时间线(单时间线可以简单理解为查询语句中需要指定所有的tag的值)查询的场景,使用hint功能时只需要在查询语句前面加上“/*+ full_series */” 即可。 例如: 常规查询语句: select value from cpu where server_id=1; 使用hint查询对应的语法则为: select /*+ full_series */ value from cpu where server_id=1; 父主题: 产品咨询
  • 监控指标 如下监控指标需要在实例节点查看,具体方法请参见查看监控指标。 表1 GeminiDB Influx支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) gemini001_cpu_usage CPU利用率 该指标为从系统层面采集的CPU使用率。 单位:% 0~100 % GeminiDB Influx实例的节点 1分钟 gemini002_mem_usage 内存利用率 该指标为从系统层面采集的内存使用率。 单位:% 0~100 % GeminiDB Influx实例的节点 1分钟 gemini003_bytes_out 网络输出吞吐量 统计平均每秒从测量对象的所有网络适配器输出的流量。 单位:kb/s ≥ 0 kb/s GeminiDB Influx实例的节点 1分钟 gemini004_bytes_in 网络输入吞吐量 统计平均每秒从测量对象的所有网络适配器输入的流量。 单位:kb/s ≥ 0 kb/s GeminiDB Influx实例的节点 1分钟 nosql005_disk_usage 存储容量使用率 该指标为存储容量使用率。 单位:% 0~100 % GeminiDB Influx实例 1分钟 nosql006_disk_total_size 存储容量总容量 该指标为实例的存储容量总容量。 单位:GB ≥ 0 GB GeminiDB Influx实例 1分钟 nosql007_disk_used_size 存储容量使用量 该指标为实例的存储容量使用量。 单位:GB ≥ 0 GB GeminiDB Influx实例 1分钟 influxdb001_series_num 时间线数量 描述总的时间线数量。 单位:Counts ≥ 0 Counts GeminiDB Influx实例的节点 1分钟 influxdb002_query_req_ps 每秒查询请求 描述每秒查询请求的数量。 单位:Counts/s ≥ 0 Counts/s GeminiDB Influx实例的节点 1分钟 influxdb003_write_req_ps 每秒写入请求 描述每秒写入请求的数量。 单位:Counts/s ≥ 0 Counts/s GeminiDB Influx实例的节点 1分钟 influxdb004_write_points_ps 写入数据点 描述每秒写入的数据点数量。 单位:Counts/s ≥ 0 Counts/s GeminiDB Influx实例的节点 1分钟 influxdb005_write_concurrency 写入并发量 描述并发写入的请求数量。 单位:Counts ≥ 0 Counts GeminiDB Influx实例的节点 1分钟 influxdb006_query_concurrency 查询并发量 描述并发查询的请求数量。 单位:Counts ≥ 0 Counts GeminiDB Influx实例的节点 1分钟
  • 事件监控支持的事件说明 表1 云数据库 GeminiDB事件监控支持的事件说明 事件来源 事件名称 事件ID 事件级别 事件说明 处理建议 事件影响 NoSQL 创建实例业务失败 NoSQLCreateInstanceFailed 重要 一般是由于实例配额不足或底层资源不足等原因导致。 先释放不再使用的实例再尝试重新发放,或者提交工单调整配额上限。 无法创建数据库实例。 变更规格失败 NoSQLResizeInstanceFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源再重试规格变更操作。 业务中断。 添加节点失败 NoSQLAddNodesFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源,删除添加失败的节点,重新尝试添加新节点。 无 删除节点失败 NoSQLDeleteNodesFailed 重要 一般是由于底层释放资源失败导致。 重新尝试删除节点。 无 扩卷失败 NoSQLScaleUpStorageFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源再重试扩卷操作。 如果磁盘满,会导致业务中断。 重置密码失败 NoSQLResetPasswordFailed 重要 一般是由于重置密码命令超时导致。 重新尝试重置密码操作。 无 修改参数模板失败 NoSQLUpdateInstanceParamGroupFailed 重要 一般是由于修改参数模板命令超时导致。 重新尝试修改参数模板操作。 无 设置备份策略失败 NoSQLSetBackupPolicyFailed 重要 一般是由于数据库连接异常导致。 重新重试设置备份策略操作。 无 创建手动备份失败 NoSQLCreateManualBackupFailed 重要 一般是备份文件导出失败或上传失败等原因导致。 提交工单让运维处理。 无法备份数据。 创建自动备份失败 NoSQLCreateAutomatedBackupFailed 重要 一般是备份文件导出失败或上传失败等原因导致。 提交工单让运维处理。 无法备份数据。 实例运行状态异常 NoSQLFaultyDBInstance 重要 由于灾难或者物理机故障导致实例故障时,会上报该事件,属于关键告警事件。 提交工单。 可能导致数据库服务不可用。 实例运行状态异常已恢复 NoSQLDBInstanceRecovered 重要 针对灾难性的故障,NoSQL有高可用工具会自动进行恢复或者手动恢复,执行完成后会上报该事件。 不需要处理。 无 节点运行状态异常 NoSQLFaultyDBNode 重要 由于灾难或者物理机故障导致数据库节点故障时,会上报该事件,属于关键告警事件。 检查数据库服务是否可以正常使用,并提交工单。 可能导致数据库服务不可用。 节点运行状态异常已恢复 NoSQLDBNodeRecovered 重要 针对灾难性的故障,NoSQL有高可用工具会自动进行恢复或者手动恢复,执行完成后会上报该事件。 不需要处理。 无 实例主备切换 NoSQLPrimaryStandbySwitched 重要 在手动触发的主备倒换或节点故障自动触发的故障倒换场景下,会上报该事件。 不需要处理。 无 出现热点分区键 HotKeyOccurs 重要 客观上是因为主键设置不合理,使得热点数据集中分布在一个分区。客户端不合理的应用程序设计,造成对某一key的频繁读写。 1. 选择合理的分区键。 2. 业务增加缓存,业务应用先从缓存中读取热点数据。 影响业务请求成功率,存在影响集群性能及稳定性的风险。 出现超大分区键 BigKeyOccurs 重要 主键设计不合理,单个分区的记录数或数据量过大,引起了节点负载不均。 1. 选择合理的分区键 2. 基于现有分区键,增加分区键散列。 随着数据量增长,集群稳定性会下降。 数据盘空间不足 NoSQLRiskyDataDiskUsage 重要 数据盘空间不足,产生此告警。 请参见对应服务用户指南中“扩容磁盘”的内容,进行磁盘扩容。 实例被设为只读模式,数据无法写入。 数据盘空间已扩容并恢复可写 NoSQLDataDiskUsageRecovered 重要 数据盘空间已扩容并恢复可写,产生此事件。 无需处理。 无 创建索引失败 NoSQLCreateIndexFailed 重要 业务负载超过实例规格瓶颈,此时再创建索引会耗费更多实例资源,导致响应变慢甚至卡顿,最终超时,引起索引创建失败。 1、根据业务负载,选择匹配的实例规格 2、在业务低峰期创建索引 3、使用后台方式创建索引 4、索引字段,结合业务进行合理选择。 索引创建失败或不完整,导致索引无效,需要删掉索引重新创建。 发生写入降速 NoSQLStallingOccurs 重要 写入速度快,接近集群规模和实例规格范围允许最大写能力,从而触发数据库自身的限流机制,会发生请求失败情况 1. 根据业务的最大写请求速率,调整集群规模或者节点规格 2. 衡量业务的最大写请求速率,分散业务写峰值速率 影响业务的请求的成功率 发生写入停止 NoSQLStoppingOccurs 重要 写入速度过快,达到集群规模和实例规格范围允许最大写能力,从而触发数据库自身的限流机制,会发生请求失败情况 1. 根据业务的最大写请求速率,调整集群规模或者节点规格 2. 衡量业务的最大写请求速率,分散业务写峰值速率 影响业务的请求的成功率 重启数据库失败 NoSQLRestartDBFailed 重要 一般是由于实例状态异常等原因导致。 提交工单让运维处理。 数据库实例状态可能存在异常。 恢复到新实例失败 NoSQLRestoreToNewInstanceFailed 重要 一般是由于底层资源不足等原因导致。 提交工单让运维在后台协调资源,重新尝试添加新节点。 无法恢复到新的数据库实例。 恢复到已有实例失败 NoSQLRestoreToExistInstanceFailed 重要 一般是由于备份文件下载或恢复失败等原因导致。 提交工单让运维处理。 当前数据库实例可能处于不可用状态。 删除备份文件失败 NoSQLDeleteBackupFailed 重要 一般是由于备份文件从obs删除失败导致。 重新尝试删除备份文件。 无 切换慢日志明文开关失败 NoSQLSwitchSlowlogPlainTextFailed 重要 一般是由于接口不支持切换等原因导致。 请查阅NoSQL用户指南,确认接口支持打开慢日志明文开关。提交工单让运维处理。 无 绑定EIP失败 NoSQLBindEipFailed 重要 一般是由于节点状态不正常,节点已经绑定EIP或EIP非法等原因导致。 检查节点是否正常,EIP是否合法。 无法通过公网访问数据库实例。 解绑EIP失败 NoSQLUnbindEipFailed 重要 一般是由于节点状态不正常,节点已经未绑定EIP等原因导致。 检查节点和EIP状态是否正常。 无 修改参数失败 NoSQLModifyParameterFailed 重要 一般是由于参数取值非法等原因导致。 排查参数值是否符合在合法范围内,提交工单让运维处理。 无 参数模板应用失败 NoSQLApplyParameterGroupFailed 重要 一般是由于实例状态异常导致参数模板无法应用等原因导致。 提交工单让运维处理。 无 开启或关闭SSL失败 NoSQLSwitchSSLFailed 重要 一般是由于修改SSL命令超时导致。 重新提交一次或者提交工单处理,并先保持切换之前使用SSL的连接方式。 是否使用SSL连接。 单行数据量太大 LargeRowOccurs 重要 用户单行数据量过大,可能会导致查询超时,进而节点OOM挂掉等各种故障发生。 1. 对每列和每行的写入长度做限制,遵从规范,使得单行的的key和value长度和不超过阈值。 2. 排查业务是否出现异常写入和异常编码,导致写入大row。 过大的单行记录,随着数据量增长,集群稳定性会下降。 父主题: 事件监控
  • 使用GeminiDB Influx时要注意什么 实例的操作系统,对用户都不可见,这意味着,只允许用户应用程序访问数据库对应的IP地址和端口。 对象存储服务(Object Storage Service,简称OBS)上的备份文件以及GeminiDB Influx使用的系统容器,都对用户不可见,它们只对GeminiDB Influx后台管理系统可见。 申请数据库实例后,您还需要做什么。 申请实例后,您不需要进行数据库的基础运维(比如高可用、安全补丁等),但是您还需要重点关注以下事情: 数据库实例的CPU、IOPS、空间是否足够。 数据库实例是否存在性能问题,是否需要优化等。 父主题: 产品咨询
  • 使用须知 目标实例必须与弹性云服务器在同一个虚拟私有云和子网内才能访问。 该弹性云服务器必须处于目标实例所属安全组允许访问的范围内。 如果目标实例所属安全组为默认安全组, 则无需设置安全组规则。 如果目标实例所属安全组非默认安全组,请查看安全组规则是否允许该弹性云服务器访问。具体操作请参考设置安全组规则。 如果安全组规则允许弹性云服务器访问,即可连接实例。 如果安全组规则不允许弹性云服务器访问,需要在实例安全组添加一条“入”的访问规则。
  • 查询 规则 禁止执行SELECT * FROM进行查询。 查询语句必须带上时间范围限制。 业务上线前,一定要对数据库进行性能压测,评估业务峰值场景下,对数据库的负载情况。 建议 执行查询时,只选择需要返回的字段,不需要的字段不要返回。 查询时间范围越小,查询性能越好。 查询时TAG值越精确查询性能越好。尽量是单时间线查询,即指定所有的TAG值,或者尽量指定越多的TAG值。 在查询中的group by time intervals后增加fill(none), fill(none)作用为:对于没有数据点的时间间隔,不返回任何时间戳和值。针对稀疏数据场景,能大幅降低查询返回结果数据量。 在使用嵌套查询时将时间范围的查询条件放在最外层的查询语句中。
  • 异地双活原理介绍 GeminiDB Cassandra提供了异地双活功能,通过异地实例间数据的双向同步和业务灵活调度能力,实现了业务恢复和故障恢复解耦,保障了故障场景下业务的连续性。 异地双活是一种多活容灾架构的解决⽅案,即部署在不同数据中心的GeminiDB Cassandra数据库可以同时为用户业务提供服务。当一个数据中心发生故障而另一个数据中心正常运行时,可以通过业务层的调度将故障区域的业务切换到正常区域,因为配置了异地双活,您可以在数据中心运行正常的区域继续处理数据。在业务不中断的前提下实现故障场景下业务的快速恢复,保证了故障场景下业务的连续性。 配置异地双活功能的具体操作请参见搭建双活关系。 父主题: 异地双活
  • 热key问题 热key的危害: 在日常生活中,经常会发生各种热门事件,应用中对该热点新闻进行上万次的点击浏览和评论时,会形成一个较大的请求量。这种情况下会造成短时间内对同一个key频繁操作,会导致key所在节点的CPU和负载突然升高,从而影响落在该节点的其他请求,导致业务成功率下降。诸如此类的还有热门商品促销,网红直播等场景,这些典型的读多写少的场景也会产生热点问题。 热key问题会产生如下危害: 流量集中,达到物理网卡上限。 请求过多,缓存分片服务被打垮。 数据库击穿,引起业务雪崩。 处理思路: 针对热key问题,一般采取如下处理思路。 设计上需要考虑热key的问题,避免在数据库上产生热key。 业务侧通过增加缓存来减少热key出现的情况。考虑多级缓存解决热key问题(如Redis + 本地二级缓存) 屏蔽热点key。 比如:在业务侧进行定制,支持热key黑白名单能力,可以将热key临时屏蔽。 检测方法: 我们定义访问频率大于100000 次/min的key为热key。 热key事件分为两种类型。一种是Writes事件,代表写热点,一种是Reads事件,表示读热点。 GeminiDB Cassandra提供了热key的监测与告警。在 CES 界面,可以配置实例的热key告警,具体方法请参见设置告警规则。 当发生热key事件时,系统会第一时间发送预警通知,您可以前往CES界面查看监控事件数据,及时处理,避免业务波动。 图2 热key告警 热key告警字段说明: { "sampler_type": "WRITES", //采样类型。取值有WRITES,READS;WRITES代表写,READS代表读。 "partition_num": "2969", //分区键的热点次数 "keyspace_name": "performance", //keyspace名称 "table_id": "a10f3bb0-3626-11ec-bbdf-63e05bbb4391", //表id "table_name": "stresstable", //表名 "partition_key": "85897376" //产生热点分区键的值 }
  • 总结 在线业务在使用Cassandra时,必须执行相关的开发规则和使用规范,在开发设计阶段就降低使用风险,合理的设计会降低大部份风险发生的概率。 任何表的设计都要考虑是否会造成热key或者大key的产生,是否会造成负载倾斜的问题。 建立数据过期机制,表中的数据不能无限制的增长而不删除或者过期。 针对读多写少的场景,要增加缓存机制,来应对读热点问题,并提升查询性能。 对于每个PK以及每行Row的大小,要控制大小,否则将影响性能和稳定性。超出后要及时优化。
  • 大key问题 可能原因: 大key的产生,最主要的原因是主键设计不合理,使得单个分区的记录数或数据量过大。一旦某一个分区出现极大时,对该分区的访问,会造成分区所在服务器的负载变高,甚至造成节点内存溢出(OOM)等。 处理思路: 针对大key问题,一般采取如下两种处理思路。 增加缓存,优化表结构。 基于现有分区键,增加分区键散列。对数据进行打散,避免单个分区的记录过大。 检测方法: 通过长时间的业务观察,我们规定以下阈值,超过任何一个条件的阈值即为大key。 单个分区键的行数不能超过10万。 单个分区的大小不超过100MB。 GeminiDB Cassandra支持了大key的检测与告警。在CES界面,可以配置实例的大key告警,具体方法请参见设置告警规则。 当发生大key事件时,系统会第一时间发送预警通知,您可以前往CES界面查看监控事件数据,及时处理,避免业务波动。 图1 大key告警 告警字段说明如下: [ { "partition_size": "1008293497", //超大分区键的总大小 "timestamp": "2021-09-08 07:08:18,240", //大key产生时间 "partition_num": "676826", //超大分区键的总行数 "keyspace_name": "ssss", //keyspace名称 "table_name": "zzzz", //表名称 "table_id": "024a1070-0064-11eb-bdf3-d3fe5956183b", //表id "partition_key": "{vin=TESTW3YWZD2021003}" //分区键 } ] 常见案例及解决方案: 案例1:某集群的数据量过大,导致集群存在大分区键(排查数量大概为2000+),最大的分区键达到38GB。当业务频繁访问这部分大的分区键时,会导致节点持续高负载,影响业务请求成功率。 该案例中表结构设计如下: 表设计分析: 上述movie表保存了短视频的相关信息,分区键为movieid,并且保存了用户信息(uid)。如果movieid是一个热门短视频,有几千万甚至上亿用户点赞此短视频,则该热门短视频所在的分区非常大(当前发现有38GB)。 解决方法: 针对上述案例中问题,可以通过如下方法解决。 优化表结构。 创建新表保存热门短视频信息,只保留短视频公共信息,不包含用户信息,确保该表不会产生大的分区键。热门短视频信息写入该表中。 增加缓存 业务应用先从缓存中读取热门文件信息,没有查询到,则从数据库中查询,减少数据库查询次数。 整体优化逻辑如下: 先查缓存,当缓存存在,直接返回结果。 当缓存不存在,查询热门视频缓存(缓存不存在,则查询hot表),当视频为为热门视频时,查询hotmovieaccess表。 当hotmovieaccess表存在结果时,直接返回。当hotmovieaccess表不存在记录时,查询movie表。 并缓存查询结果。 案例2:movie_meta以月度建表,每个表只存当月的数据,初始的这种设计是可以减轻或规避分区键过大问题的。由于业务频繁写入,热门视频存储的记录非常多,还是形成了大的数据分区。 解决方法: 新分区键增加一个随机数(0~999):将原来一个分区存储的信息随机离散存储到1000个分区中。采用新的分区键之后,没有形成新超过100MB的分区键,旧的超过100MB的分区键数据,随着时间过期即可。
  • 数据库实例状态 数据库实例状态是数据库实例的运行情况。可以通过管理控制台查看数据库实例状态。 表1 实例状态 状态 说明 正常 数据库实例正常和可用。 异常 数据库实例不可用。 创建中 正在创建数据库实例。 创建失败 数据库实例创建失败。 重启中 正在重启数据库实例。 重置密码中 正在重置管理员密码。 节点扩容中 正在扩容该实例下的节点个数。 节点缩容中 正在删除该实例下的节点。 存储扩容中 正在扩容实例的磁盘容量。 规格变更中 正在变更实例的CPU和内存规格。 备份上传中 正在上传备份文件。 备份中 正在创建数据库备份。 恢复检查中 该实例下的备份正在恢复到新实例。 转包周期中 实例的计费方式正在由“按需计费”转为“包年/包月”。 转按需中 实例的计费方式正在由“包年/包月”转为“按需计费”。 灾备集群创建中 正在创建容灾实例。 容灾关系解除中 删除容灾实例。 SSL切换中 正在开启或关闭SSL安全连接。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。您需前往费用中心充值成功,欠款核销后,冻结的实例才会解冻。 解冻中 欠款核销后,正在解冻数据库实例。 包周期变更资源检查中 包周期实例在进行变更过程中所持续的状态。 父主题: 产品介绍
  • 入门实践 当您购买并连接了GeminiDB Cassandra数据库实例后,可以根据自身的业务需求使用GeminiDB Cassandra提供的一系列常用实践。 表1 常用最佳实践 实践 描述 数据库规范 基本设计规范 介绍GeminiDB Cassandra的基本设计规范。 数据库对象使用规范 介绍数据库对象的使用规范。 数据库使用约束规范 介绍数据库的使用约束规范。 查询规范 介绍GeminiDB Cassandra的查询规范。 变更实例 修改实例名称 GeminiDB Cassandra支持修改数据库实例名称,以方便您区分和识别实例。 重置管理员密码 GeminiDB Cassandra支持重置数据库管理员密码,建议您定期修改密码,以提高系统安全性,防止出现密码被破解等安全风险。 变更实例的CPU和内存规格 当用户购买的实例的CPU和内存规格无法满足业务需要时,可以在控制台进行CPU和内存规格变更。 数据备份 管理自动备份 介绍如何在数据库实例的备份时段中创建数据库实例的自动备份,系统根据您指定的备份保留期保存数据库实例的自动备份。 管理手动备份 介绍如何为数据库实例手动备份数据,用户可以通过手动备份恢复数据,从而保证数据可靠性。 设置跨区域备份策略 介绍如何为数据库实例设置跨区域备份策略,用户可以在异地区域使用目标区域的备份文件恢复到新的GeminiDB Cassandra实例,用来恢复业务。 创建库表级备份 介绍如何为数据库实例创建库表级备份,当数据库或表被恶意或误删除,可依赖实例的备份保障数据安全。 数据恢复 恢复备份到新实例 介绍如何使用已有的自动备份或手动备份恢复实例数据到新建实例,恢复后的数据与该备份生成时的实例数据一致。 恢复备份到指定时间点 介绍如何使用已有的自动备份,恢复实例数据到指定时间点。 日志管理 慢日志 GeminiDB Cassandra支持查看数据库级别的慢日志,执行时间的单位为ms。通过该日志,可查找出执行效率低的语句,以便优化。 父主题: 快速入门
  • 备份方案 GeminiDB Cassandra实例支持自动备份和手动备份两种方案。 自动备份 您可以在管理控制台设置自动备份策略,系统将会按照自动备份策略中设置的备份时间段和备份周期进行自动备份,并且会按照设置的备份保留天数对备份文件进行存放。 自动备份的备份文件不支持手动删除,可通过修改自动备份策略调整备份保留天数,超出备份保留天数的已有备份文件会被自动删除。 手动备份 手动备份是由用户根据自身业务特点随时启动的数据库实例的全量备份,会一直保存,直到用户手动删除。 建议您定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份恢复数据库,从而保证数据可靠性。 表1 备份方案 备份方案 使用场景 自动备份 系统按照自动备份策略,对数据库进行自动备份,您可以根据业务需求修改自动备份策略。 手动备份 根据自身业务特点手动启动数据库实例的全量备份。 跨区域备份 用户可以在异地区域使用目标区域的备份文件恢复到新的实例,用来恢复业务。 创建库表级备份 当数据库或表被恶意或误删除,可依赖实例的备份保障数据安全。
  • 备份原理 GeminiDB Cassandra有专门负责备份管理的节点(seed节点)。如图1所示,GeminiDB Cassandra的备份在seed节点上进行,通过对数据进行秒级快照,并将生成的备份文件以压缩包的形式存储在对象存储服务(OBS)中,不会额外占据GeminiDB Cassandra实例的存储空间。备份上传过程中会消耗一定的CPU,因此会存在CPU上涨的现象,一般涨幅范围在5%~15%,该现象属于正常现象。 图1 备份原理
  • 备份存储 GeminiDB Cassandra的备份数据存储至对象存储服务(Object Storage Service,简称OBS),在提高数据容灾能力的同时有效降低磁盘空间占用。 购买实例存储空间后,GeminiDB Cassandra将同比例赠送备份存储空间,用于存储备份数据。例如,您购买的实例存储空间为100GB时,会得到赠送的100GB备份存储空间。当备份数据没有超出100GB,将免费存储在OBS上;当备份数据超出100GB,超出部分将根据OBS的计费规则收费,详情请参见OBS计费详情。
  • 使用GeminiDB Cassandra时要注意什么 实例的操作系统,对用户都不可见,这意味着,只允许用户应用程序访问数据库对应的IP地址和端口。 对象存储服务(Object Storage Service,简称OBS)上的备份文件以及GeminiDB Cassandra使用的系统容器,都对用户不可见,它们只对GeminiDB Cassandra后台管理系统可见。 申请数据库实例后,您还需要做什么。 申请实例后,您不需要进行数据库的基础运维(比如高可用、安全补丁等),但是您还需要重点关注以下事情: 数据库实例的CPU、IOPS、空间是否足够。 数据库实例是否存在性能问题,是否需要优化等。 父主题: 产品咨询
  • 数据库实例规格 同一实例类型根据内存的配置不同分为多种实例规格,针对不同的应用场景,您可以选择不同规格的实例。 本章节主要介绍GeminiDB Cassandra实例支持的实例规格信息。数据库实例规格与所选的CPU机型相关,请以实际环境为准。 表1 GeminiDB Cassandra集群实例规格 CPU类型 规格名称 vCPU(个) 内存(GB) 最小存储空间(GB) 最大存储空间(GB) x86 geminidb.cassandra.large.4 2 8 100 12,000 geminidb.cassandra.xlarge.4 4 16 100 24,000 geminidb.cassandra.xlarge.8 4 32 100 24,000 geminidb.cassandra.2xlarge.4 8 32 100 48,000 geminidb.cassandra.2xlarge.8 8 64 100 48,000 geminidb.cassandra.4xlarge.4 16 64 100 96,000 geminidb.cassandra.4xlarge.8 16 128 100 96,000 geminidb.cassandra.6xlarge.8 24 192 100 144,000 geminidb.cassandra.8xlarge.4 32 128 100 192,000 geminidb.cassandra.8xlarge.8 32 256 100 192,000 父主题: 产品介绍
  • 如何使用COPY命令导出、导入数据 下面将以具体的示例介绍从预置数据到导出数据、导入数据的完整过程。 预置数据 创建keyspace。 CREATE KEYSPACE cycling WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; 创建table。 CREATE TABLE cycling.cyclist_name ( id UUID PRIMARY KEY, lastname text, firstname text ); 插入数据。 INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a803e2, 'VOS','Marianne'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (e7cd5752-bc0d-4157-a80f-7523add8dbcd, 'VAN DER BREGGEN','Anna'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (e7ae5cf3-d358-4d99-b900-85902fda9bb0, 'F RAM E','Alex'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (220844bf-4860-49d6-9a4b-6b5d3a79cbfb, 'TIRALONGO','Paolo'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (6ab09bec-e68e-48d9-a5f8-97e6fb4c9b47, 'KRUIKSWIJK','Steven'); INSERT INTO cycling.cyclist_name (id, lastname, firstname) VALUES (fb372533-eb95-4bb4-8685-6ef61e994caa, 'MATTHEWS', 'Michael'); 从“cyclist_name”表中导出、导入数据。 将“cyclist_name”表中的“id”和“lastname”列导出到 CS V文件。 COPY cycling.cyclist_name (id,lastname) TO '../cyclist_lastname.csv' WITH HEADER = TRUE; 图1 导出成功 上述命令执行成功后,会在当前目录的上一层目录中创建“cyclist_lastname.csv”文件。如果该文件已经存在,则会将其覆盖。 将“cyclist_name”表中的“id”和“first name”列导出到另一个CSV文件。 COPY cycling.cyclist_name (id,firstname) TO '../cyclist_firstname.csv' WITH HEADER = TRUE; 图2 导出成功 上述命令执行成功后,会在当前目录的上一层目录中创建“cyclist_firstname.csv”文件。如果该文件已经存在,则会将其覆盖。 将“cyclist_name”表中的数据删除。为了您的数据安全,暂不支持TRUNCATE命令。 DELETE FROM cycling.cyclist_name WHERE id = 'fb372533-eb95-4bb4-8685-6ef61e994caa'; 查看此时表中无数据。 SELECT * FROM cycling.cyclist_name ; 图3 查询数据 导入“cyclist_firstname.csv”文件。 COPY cycling.cyclist_name (id,firstname) FROM '../cyclist_firstname.csv' WITH HEADER = TRUE; 图4 导入成功 校验新导入的数据。 SELECT * FROM cycling.cyclist_name; 图5 导入成功 导入“cyclist_lastname.csv”文件。 COPY cycling.cyclist_name (id,lastname) FROM '../cyclist_lastname.csv' WITH HEADER = TRUE; 图6 导入数据 校验数据是否更新。 SELECT * FROM cycling.cyclist_name; 查询结果显示, 图7 导入成功
  • COPY语法 COPY TO命令 COPY table_name [( column_list )] TO 'file_name' [, 'file2_name', ...] | STDOUT [WITH option = 'value' [ADN ...]] COPY FROM命令 COPY table_name [( column_list )] FROM 'file_name' [, 'file2_name', ...] | STDIN [WITH option = 'value' [ADN ...]] COPY支持一个或多个以逗号分隔的文件名或python glob表达式的列表。 上述COPY命令中出现的一些常见语法符号可以参见表1的约定。
  • 计费构成分析 可以将GeminiDB Cassandra的使用阶段按照计费模式分为两段: 2023/03/18 15:30:00 ~ 2023/03/20 10:30:00:按需计费 2023/03/18 15:30:00 ~ 2023/03/20 9:00:00期间 实例规格:2vCPUs,8GB 节点数量:3 使用存储空间:100GB 使用备份空间:100GB 公网带宽:6Mbit/s 在2023/03/20 9:00:00 ~ 2023/03/20 10:30:00期间 实例规格:4vCPUs,16GB 节点数量:3 使用存储空间:200GB 使用备份空间:210GB(备份按需计费时间:2023/03/20 10:00:00~2023/03/20 10:30:00) 公网带宽:6Mbit/s 2023/03/20 10:30:00 ~ 2023/04/20 23:59:59:包年/包月计费 实例规格:4vCPUs,16GB 节点数量:3 使用存储空间:200GB 使用备份空间:300GB(备份按需计费时间:2023/04/10 23:59:59 ~ 2023/04/20 23:59:59) 公网带宽:6Mbit/s 计费时长:1个月 此案例中的单价仅为示例,且计算出的费用为估算值。单价的变动和实际场景中计算出来的费用可能会有偏差。请以华为云官网发布的数据为准。 按需计费 在2023/03/18 15:30:00 ~ 2023/03/20 9:00:00期间按照2vCPUs 8GB规格计费,计费时长为41.5小时,费用计算如下: 在2023/03/20 9:00:00 ~ 2023/03/20 10:30:00期间按照4vCPUs 16GB规格计费,计费时长为1.5小时,费用计算如下: 包年/包月计费 在2023/03/20 10:30:00 ~ 2023/04/20 23:59:59期间为包年/包月计费,计费时长为1个月,费用计算如下: 由此可见,在3~4月份,GeminiDB Cassandra总共产生的费用为:256.51 + 17.70 + 4407.10 = 4681.31 元。
  • 计费场景 某用户于2023/03/18 15:30:00购买了一个按需计费的GeminiDB Cassandra实例,规格配置如下: 规格:2vCPUs,8GB 节点数量:3 公网带宽:6Mbit/s 用了一段时间后,用户发现实例当前规格无法满足业务需要,于2023/03/20 9:00:00扩容规格为4vCPUs,16GB。因为该实例打算长期使用下去,于2023/03/20 10:30:00将实例转为包年/包月计费,购买时长为1个月。那么在3~4月份,该实例总共产生多少费用呢?
  • 规格性能说明 GeminiDB Cassandra的性能规格说明请参考表1。 表1 GeminiDB Cassandra性能规格说明 vCPU(个) 单节点的最大数据量(GB) 单节点的最大TPS 2 200 250 4 250 1,000 8 250 2,500 16 500 5,000 24 500 7,000 32 500 10,000 TPS主要与实例的vCPU个数有关。 当单节点数据量或TPS超过性能规格说明时,会出现时延高、请求失败、OOM等问题,建议尽快扩容,否则因未及时扩容导致的问题不在SLA承诺范围内。
  • 计费模式概述 GeminiDB Cassandra提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于设备需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照实例实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等设备需求量瞬间大幅波动的场景。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费。 按照订单的购买周期结算。 后付费。 按照实例实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 适用计费项 实例规格(vCPU和内存)、存储空间、备份空间、弹性公网IP 实例规格(vCPU和内存)、存储空间、备份空间、弹性公网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费用计算示例 按需计费模式下,各计费项的计费示例请参见计费示例。
  • 计费说明 GeminiDB Cassandra的计费项由实例规格费用、存储空间费用、备份空间费用和公网流量费用组成。具体内容如表1所示。 标 * 的计费项为必选计费项。 表1 GeminiDB Cassandra实例计费项 计费项 计费项说明 适用的计费模式 计费公式 * 实例规格 计费因子:vCPU和内存,不同规格的实例类型提供不同的计算和存储能力。 包年/包月、按需计费 实例规格单价 * 购买时长 实例规格单价请参见云数据库 GeminiDB价格详情中的“集群-规格费用”。 * 存储空间 计费因子:存储空间,按统一标准进行计费。 包年/包月、按需计费 存储空间单价 * 存储容量 * 购买时长 请参见云数据库 GeminiDB价格详情中的“集群磁盘空间计费信息”。 备份空间 计费因子:备份空间,按统一标准进行计费。 按需计费 备份空间单价 * 备份收费容量 * 购买时长 请参见云数据库 GeminiDB价格详情中的“备份空间计费信息”。 说明: 计费时长:备份超过免费空间大小的使用时长。 公网流量 如有互联网访问需求,您需要购买弹性公网IP。 计费因子:带宽费、流量费和IP保有费。 包年/包月计费模式支持按带宽计费方式,收取带宽费。 按需计费模式支持按带宽计费、按流量计费和加入共享带宽三种计费方式,分别收取带宽费+IP保有费、流量费+IP保有费、带宽费+IP保有费。 包年/包月、按需计费 带宽费支持使用带宽加油包抵扣,流量费支持使用共享流量包抵扣。 按固定带宽值采用阶梯计费 0Mbit/s~5Mbit/s(含):均为一个统一的单价 大于5Mbit/s:按每Mbit/s计费 公网带宽单价请参见弹性 云服务器价格 详情中的“带宽价格”,或者弹性公网IP价格详情。
  • 修订记录 发布日期 修订记录 2023-08-30 第三十五次正式发布。 新增计费说明。 2023-07-18 第三十四次正式发布。 新增入门实践。 2023-06-30 第三十三次正式发布。 新增事件监控。 2023-05-30 第三十二次正式发布。 新增查看增量备份文件。 2023-04-28 第三十一次正式发布。 新增通过Go连接实例。 新增增量备份策略。 2023-03-31 第三十次正式发布。 新增操作系统更新。 2023-01-05 第二十九次正式发布。 支持设置跨区域备份策略。 2022-08-11 第二十八次正式发布。 购买实例,支持磁盘加密。 新增常见问题:资源冻结/释放/删除/退订。 2022-07-07 第二十七次正式发布。 升级内核小版本,支持补丁升级功能。 2022-06-01 第二十六次正式发布。 异地双活原理介绍,支持异地双活功能。 2022-02-15 第二十五次正式发布。 购买实例,修改实例名称,优化中文名称长度。 删除节点,GeminiDB Cassandra包年/包月实例支持缩容节点数量。 创建容灾实例,支持同个VPC下跨子网创建灾备实例。 2022-01-27 第二十四次正式发布。 实例续费,按需计费实例转包周期,包周期实例转按需计费,退订包周期实例,支持批量操作。 2021-11-20 第二十三次正式发布。 购买实例,存储空间自动扩容,支持扩容。 2021-09-27 第二十二次正式发布。 删除节点,支持删除节点。 2021-06-30 第二十一次正式发布。 购买实例,GeminiDB Cassandra实例名称支持中文。 修改实例安全组,GeminiDB Cassandra支持修改安全组。 2021-06-23 第二十次正式发布。 通过Java连接实例,增加Java连接GeminiDB Cassandra实例的方法。 2021-06-15 第十九次正式发布。 调整文档结构。 2021-04-30 第十八次正式发布。 数据库实例规格,增加不同规格实例支持的最小存储容量。 2021-04-15 第十七次正式发布。 调整文档结构。 购买页优化性能规格描述。 2021-01-30 第十六次正式发布。 实例操作列增加规格变更、添加节点和磁盘扩容入口。 2020-12-30 第十五次正式发布。 GeminiDB Cassandra支持创建容灾实例。 2020-10-30 第十三次正式发布。 资源标签支持20个配额。 扩容磁盘支持每次至少选择1GB扩容量。 GeminiDB Cassandra支持包周期实例的计算规格降配变更。 2020-09-30 第十二次正式发布。 支持实例配额管理。 GeminiDB Cassandra增加磁盘使用率指标监控。 2020-08-30 第十一次正式发布。 GeminiDB Cassandra支持如下功能: 支持修改实例名称 支持实例回收站 支持导出日志文件 2020-07-30 第十次正式发布。 GeminiDB Cassandra支持时间点恢复。 2020-06-30 第九次正式发布。 GeminiDB Cassandra支持如下功能: 购买包周期实例 包周期实例续费 按需实例转包周期实例 包周期实例转按需计费实例 退订包周期实例 支持SSL加密 支持跨AZ级容灾 2020-04-30 第八次正式发布。 新增监控指标。 2020-03-31 第七次正式发布。 新增创建参数模板。 新增导出参数模板。 新增比较参数模板。 新增复制参数模板。 新增重置参数模板。 新增应用参数模板。 新增查看参数模板应用记录。 新增修改参数模板描述。 新增删除参数模板。 新增部分支持的监控指标,请参见GeminiDB Cassandra支持的监控指标。 2020-03-13 第六次正式发布。 支持慢日志。 2020-01-20 第五次正式发布。 GeminiDB Cassandra支持规格变更。 2019-11-18 第四次正式发布。 支持重置管理员密码。 支持重启数据库实例。 支持修改数据库实例名称。 2019-10-22 第三次正式发布。 对接标签管理服务。 2019-09-11 第二次正式发布。 支持添加和删除GeminiDB Cassandra实例的节点。 支持扩容GeminiDB Cassandra实例的磁盘容量。 2019-07-18 第一次正式发布。
  • 操作步骤 获取GeminiDB Cassandra实例的内网IP地址、端口。 内网IP地址和端口的获取方法请参见查看IP地址和端口。 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。 编辑连接GeminiDB Cassandra实例的代码。 import com.datastax.driver.core.*; Cluster cluster = null; try { cluster = Cluster.builder() .addContactPoint("127.0.0.1")//此处为步骤1中获取到的GeminiDB Cassandra实例的内网IP .withPort(8635) //此处为步骤1中获取到的GeminiDB 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(); } 运行示例代码,确认结果是否正常。
共100000条