云服务器内容精选

  • 连接数据库 连接数据库的客户端工具包括DAS、gsql和应用程序接口(如ODBC和JDBC)。 通过华为云数据管理服务(Data Admin Service,简称DAS)这款可视化的专业数据库管理工具,可获得执行SQL、高级数据库管理、智能化运维等功能,做到易用、安全、智能的管理数据库。 GaussDB 默认开通DAS连接权限。推荐使用DAS连接实例。连接GaussDB的具体操作请参考《DAS用户指南》。 gsql是GaussDB自带的客户端工具。使用gsql连接数据库,可以交互式地输入、编辑、执行SQL语句。 用户可以使用标准的数据库应用程序接口(如ODBC和JDBC),开发基于GaussDB的应用程序。 主备版场景下:客户端工具通过连接主DN访问数据库。因此连接前,需获取主DN所在服务器的IP地址及端口号信息。正常业务使用禁止直接连接其他DN访问数据库。 应用程序接口 父主题: 数据库使用
  • 连接数据库 连接数据库的客户端工具包括DAS、gsql和应用程序接口(如ODBC和JDBC)。 通过华为云数据管理服务(Data Admin Service,简称DAS)这款可视化的专业数据库管理工具,可获得执行SQL、高级数据库管理、智能化运维等功能,做到易用、安全、智能的管理数据库。GaussDB默认开通DAS连接权限。推荐使用DAS连接实例。连接GaussDB的具体操作请参考《DAS用户指南》。 gsql是GaussDB自带的客户端工具。使用gsql连接数据库,可以交互式地输入、编辑、执行SQL语句。具体连接方式请参考通过gsql连接实例。 用户可以使用标准的数据库应用程序接口(如ODBC和JDBC),开发基于GaussDB的应用程序。 分布式场景下:客户端工具通过连接CN访问数据库。因此连接前,需获取CN所在服务器的IP地址及CN的端口号信息。客户端工具可以通过连接任何一个CN访问数据库。正常业务使用禁止直接连接DN访问数据库。 应用程序接口 父主题: 数据库使用
  • 处理方法 故障构造场景 使用客户端连接DWS数据库。 执行以下SQL语句。 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE t1(a int, b timestamp); CREATE TABLE CREATE TABLE t2(a int, b text); CREATE TABLE INSERT INTO t1 select 1, current_date; INSERT 0 1 INSERT INTO t2 select 1, current_date; INSERT 0 1 SELECT * FROM t1 UNION SELECT * FROM t2; ERROR: UNION types timestamp without time zone and text cannot be matched LINE 1: SELECT * FROM t1 UNION SELECT * FROM t2; ^ 解决办法 示例中,t1表和t2表在b列上类型不同,导致在UNION操作时出现类型不匹配的报错,应保证UNION各分支相同位置的输出列类型匹配。 t2表b列是text类型,插入的数据是current_date,在插入时发生了隐式类型转换,所以插入不报错;但是在查询时,不会自动进行隐式转换,因此会报错。 解决以上问题,需保证UNION各分支的输出列类型匹配,不满足要求时可以对输出列强制类型转化。 1 2 3 4 5 6 SELECT a,b::text FROM t1 UNION SELECT a,b FROM t2; a | b ---+--------------------- 1 | 2023-02-16 1 | 2023-02-16 00:00:00 (2 rows)
  • 扩展JSON语义: 表2 扩展JSON语义 关键字 作用 filter 在查询语句中json查询的关键字。 term 查询时判断某个document是否包含某个具体的值。 match 将被询值进行分词,进行全文检索。 range 查询指定某个字段在某个特定的范围。(范围查询子关键字:"eq"/"gte"/"gt"/"lte"/"lt") bool 必须和 "must"、"should"、"must not" 一起组合出复杂的查询。 must bool类型的子查询,封装"term"、"match"、"range" 查询。 should bool类型的子查询,封装"term"、"match"、"range" 查询。 must not bool类型的子查询,封装"term"、"match"、"range" 查询。 sort 支持全局索引列排序功能。
  • 如何查看GaussDB(DWS)表是行存还是列存? 表的存储方式由建表语句中的ORIENTATION参数控制,row表示行存,column表示列存。 8.1.2及之前版本,不指定ORIENTATION参数,默认为row行存。 8.1.3版本后,支持通过GUC参数default_orientation控制,即创建表时,如果不指定ORIENTATION参数时,则根据该GUC参数的值来创建对应类型的表。其中,row表示行存表,column表示列存表,column enabledelta表示创建开启delta表的列存表。该GUC可通过DWS控制台进行设置,如下图。 查看已创建的表是行存还是列存,可通过表定义函数PG_GET_TABLEDEF查询。 如下orientation=column表示为列存表。 目前暂不支持通过ALTER TABLE语句修改ORIENTATION参数,即行存表和列存表无法直接进行转换。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT * FROM PG_GET_TABLEDEF('customer_t1'); pg_get_tabledef ----------------------------------------------------------------------------------- SET search_path = tpchobs; + CREATE TABLE customer_t1 ( + c_customer_sk integer, + c_customer_id character(5), + c_first_name character(6), + c_last_name character(8) + ) + WITH (orientation=column, compression=middle, colversion=2.0, enable_delta=false)+ DISTRIBUTE BY HASH(c_last_name) + TO GROUP group_version1; (1 row) 父主题: 数据库使用
  • 连接数据库 文档数据库服务常用的连接方式如下表。 表1 连接方式 连接方式 IP地址 使用场景 说明 内网连接(推荐) 内网IP地址 系统默认提供内网IP地址。 当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库实例处于同一区域、可用区、虚拟私有云子网内,建议单独使用内网IP通过弹性云服务器连接文档数据库实例。 文档数据库服务和弹性云服务器在不同的安全组默认不能访问,需要在文档数据库服务所属安全组添加一条“入”的访问规则。 文档数据库服务默认端口:8635,需要手动修改才能访问其它端口。 安全性高,可实现DDS的较好性能。 通过内网连接集群实例 通过内网连接副本集实例 通过内网连接单节点实例 公网连接 弹性公网IP 当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库实例处于不同区域时,建议单独使用弹性公网IP通过弹性云服务器连接文档数据库实例。 当应用部署在其他云服务的系统上时,建议单独使用弹性公网IP通过弹性云服务器连接文档数据库实例。 降低安全性。 通过公网连接集群实例 通过公网连接副本集实例 通过公网连接单节点实例 应用程序连接 内网IP地址 通过各类应用程序连接数据库。 通过Java连接数据库 通过Python连接数据库 父主题: 数据库使用
  • 账户说明 为了给文档数据库实例提供管理服务,您在创建数据库实例时,文档数据库服务会自动为实例创建根账户root(或admin)、监控账户monitor和备份账户backup,这些账户属于华为云实例管理平台,您不能操作或者使用。如果试图删掉、重命名、修改这些账户的密码和权限,会导致出错。 对于数据库管理员账户rwuser,以及您所创建的账户,允许修改账户的密码。 默认账户rwuser以及通过rwuser创建的账户,对系统库admin和config权限受限,无法进行正常操作。对自身创建的库表,具有充分的操作权限。 MongoDB的User一般是在某个固定的认证库下创建的。连接数据库时,需要通过参数--authenticationDatabase来明确指定对应的认证库。 DDS实例中,默认的rwuser用户的认证库,是admin。 账户密码连续5次输入错误,账户会被锁定10s。
  • 创建账户 选择admin数据库。 use admin 以user1账户为例,创建数据库账户。 db.createUser({user: "user1", pwd: "****", passwordDigestor:"server", roles:[{role: "root", db: "admin"}]}) “server”是指在服务端加密密码,为固定值,无需修改。 “****”是新密码,长度8~32位,且必须为英文大小写字母、数字以及特殊字符~@#%-_!*+=^?的组合。 “roles”限制了该账户所具有的权限。若指定一个空数组,表示该账户不具有任何权限。 查看创建结果。 显示如下信息,说明创建成功。 Successfully added user: { "user" : "user1", "passwordDigestor" : "server", "roles" : [ { "role" : "root", "db" : "admin" } ] }
  • 账户密码等级设置 文档数据库服务在控制台侧管理员密码的安全策略: 密码长度为8~32个字符。 密码必须为英文大小写字母、数字、特殊字符~!@#%^*-_=+?()$的组合。 文档数据库对在客户端新创的数据库用户,设置了密码安全策略: 密码长度为8~32个字符。 密码为英文大小写字母、数字、特殊字符~@#%-_!*+=^?的组合。 创建实例数据库以及设置密码时,安全起见,为用户提供了密码复杂度校验,如果不满足要求,请根据提示信息调整密码复杂度。
  • 支持与限制的命令 用户在连接到社区版文档数据库后,需要关注以下支持以及限制的命令。 更多信息,请参见MongoDB官方文档。 如下表所示,“√”表示当前版本支持该命令,“×”表示当前版本不支持该命令。 表1 支持与限制的命令 命令类别 命令名称 3.4 4.0 4.2 备注 Aggregates Commands aggregate √ √ √ - count √ √ √ - distinct √ √ √ - group √ √ √ - mapReduce √ √ √ 在DDS实例关联参数模板中设置参数“security.javascriptEnabled”的值为“true”后,可以使用该命令。更多信息,请参见如何使用MapReduce命令。 Geospatial Commands geoNear √ √ √ - geoSearch √ √ √ - Query and Write Operation Commands find √ √ √ - insert √ √ √ - update √ √ √ - delete √ √ √ - findAndModify √ √ √ - getMore √ √ √ - getLastError √ √ √ - resetError √ √ √ - getPrevError √ √ √ - parallelCollectionScan √ √ √ - Query Plan Cache Commands planCacheListFilters √ √ √ - planCacheSetFilter √ √ √ - planCacheClearFilters √ √ √ - planCacheListQueryShapes √ √ √ - planCacheListPlans √ √ √ - planCacheClear √ √ √ - Authentication Commands logout √ √ √ - authenticate √ √ √ - copydbgetnonce √ √ √ - getnonce √ √ √ - authSchemaUpgrade x x x 系统内部命令。 User Management Commands createUser √ √ √ - updateUser √ √ √ - dropUser √ √ √ - dropAllUsersFromDatabase √ √ √ - grantRolesToUser √ √ √ - revokeRolesFromUser √ √ √ - usersInfo √ √ √ - Role Management Commands invalidateUserCache √ √ √ - createRole √ √ √ - updateRole √ √ √ - dropRole √ √ √ - dropAllRolesFromDatabase √ √ √ - grantPrivilegesToRole √ √ √ - revokePrivilegesFromRole √ √ √ - grantRolesToRole √ √ √ - revokeRolesFromRole √ √ √ - rolesInfo √ √ √ - Replication Commands replSetElect x x x 系统内部命令。 replSetUpdatePosition x x x 系统内部命令。 appendOplogNote x x x 系统内部命令。 replSetFreeze x x x 系统内部命令。 replSetGetStatus √ √ √ - replSetInitiate x x x 系统内部命令。 replSetMaintenance x x x 系统内部命令。 replSetReconfig x x x 系统内部命令。 replSetStepDown x x x 系统内部命令。 replSetSyncFrom x x x 系统内部命令。 replSetRequestVotes x x x 系统内部命令。 replSetDeclareElectionWinner x x x 系统内部命令。 resync x x x 系统内部命令。 applyOps x x x 系统内部命令。 isMaster √ √ √ - replSetGetConfig x x x 系统内部命令。 Sharding Commands flushRouterConfig √ √ √ 高危命令。 addShard x x x 越权操作。 addShardToZone √ √ √ - balancerStart √ √ √ - balancerStatus √ √ √ - balancerStop √ √ √ - removeShardFromZone √ √ √ - updateZoneKeyRange √ √ √ - cleanupOrphaned x x x 高危命令。 checkShardingIndex x x x 系统内部命令。 enableSharding √ √ √ - listShards x x x 系统内部命令。 removeShard x x x 高危命令。 getShardMap x x x 系统内部命令。 getShardVersion √ √ √ - mergeChunks √ √ √ - setShardVersion x x x 系统内部命令。 shardCollection √ √ √ - shardingState x x x 系统内部命令。 unsetSharding x x x 系统内部命令。 split √ √ √ - splitChunk √ √ √ - splitVector √ √ √ - moveChunk √ √ √ - movePrimary √ x √ - isdbgrid √ √ √ - Administration Commands setFeatureCompatibilityVersion √ √ √ - renameCollection √ √ √ - dropDatabase √ √ √ - listCollections √ √ √ - drop √ √ √ - create √ √ √ - clone x x x 系统内部命令。 cloneCollection √ √ √ - cloneCollectionAsCapped √ √ √ - convertToCapped √ √ √ - filemd5 √ √ √ - createIndexes √ √ √ - listIndexes √ √ √ - dropIndexes √ √ √ - fsync √ √ √ - clean x x x 系统内部命令。 connPoolSync x x x 系统内部命令。 connectionStatus √ √ √ - compact x x x 高危命令。 collMod √ √ √ - reIndex √ √ √ - setParameter x x x 系统配置命令。 getParameter √ √ √ - repairDatabase x x x 高危命令。 repairCursor x x x 系统内部命令。 touch √ √ √ - shutdown x x x 高危命令。 logRotate x x x 高危命令。 killOp √ √ √ - releaseFreeMemory √ √ √ - Diagnostic Commands availableQueryOptions √ √ √ - buildInfo √ √ √ - collStats √ √ √ - connPoolStats x x x 系统内部命令。 cursorInfo x x x 系统内部命令。 dataSize √ √ √ - dbHash x x x 系统内部命令。 dbStats √ √ √ - diagLogging x x x 系统内部命令。 driverO IDT est x x x 系统内部命令。 explain √ √ √ - features √ √ √ - getCmdLineOpts x x x 系统内部命令。 getLog x x x 系统内部命令。 hostInfo x x x 系统内部命令。 isSelf x x x 系统内部命令。 listCommands √ √ √ - listDatabases √ √ √ - netstat x x x 系统内部命令。 ping √ √ √ - profile √ √ √ - serverStatus √ √ √ - shardConnPoolStats x x x 系统内部命令。 top √ √ √ - validate x x x 系统配置命令。 whatsmyuri √ √ √ - Internal Commands handshake x x x 系统内部命令。 _recvChunkAbort x x x 系统内部命令。 _recvChunkCommit x x x 系统内部命令。 _recvChunkStart x x x 系统内部命令。 _recvChunkStatus x x x 系统内部命令。 _replSetFresh x x x 系统内部命令。 mapreduce.shardedfinish x x x 系统内部命令。 _transferMods x x x 系统内部命令。 replSetHeartbeat x x x 系统内部命令。 replSetGetRBID x x x 系统内部命令。 _migrateClone x x x 系统内部命令。 replSetElect x x x 系统内部命令。 writeBacksQueued x x x 系统内部命令。 writebacklisten x x x 系统内部命令。 System Events Auditing Commands logApplicationMessage x x x 系统内部命令。 父主题: 数据库使用
  • 分析GeminiDB Mongo数据库正在执行的请求 通过Mongo Shell连接GeminiDB Mongo实例。 执行以下命令,查看数据库当前正在执行的操作。 db.currentOp() 回显如下: { "raw" : { "shard0001" : { "inprog" : [ { "desc" : "StatisticsCollector", "threadId" : "140323686905600", "active" : true, "opid" : 9037713, "op" : "none", "ns" : "", "query" : { }, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : { } }, { "desc" : "conn2607", "threadId" : "140323415066368", "connectionId" : 2607, "client" : "xxx.xxx.xxx.xxx:xxx", "appName" : "MongoDB Shell", "active" : true, "opid" : 9039588, "secs_running" : 0, "microsecs_running" : NumberLong(63), "op" : "command", "ns" : "admin.", "query" : { "currentOp" : 1 }, "numYields" : 0, "locks" : { }, "waitingForLock" : false, "lockStats" : { } } ], "ok" : 1 }, ... } client:发起请求的客户端。 opid:操作的唯一标识符。 secs_running:该操作已经执行的时间,单位:秒。如果该字段返回的值特别大,需要查看请求是否合理。 microsecs_running:该操作已经执行的时间,单位:微秒。如果该字段返回的值特别大,需要查看请求是否合理。 op:操作类型。通常是query、insert、update、delete、command中的一种。 ns:操作目标集合。 其他参数详见db.currentOp()命令官方文档。 根据命令执行结果,分析是否有异常耗时的请求正在执行。 如果业务日常运行的CPU使用率不高,由于执行某一操作使得CPU使用率过高,导致业务运行缓慢,该场景下,您需要关注执行耗时久的请求。 如果发现异常请求,您可以找到该请求对应的opid,执行db.killOp(opid)命令终止该请求。
  • 分析GeminiDB Mongo数据库的慢请求 GeminiDB Mongo数据库服务默认开启了慢请求Profiling ,系统自动将请求时间超过500ms的执行情况记录到对应数据库下的“system.profile”集合中。 通过Mongo Shell连接GeminiDB Mongo实例。 执行以下命令,进入指定数据库,以“test”为例。 use test 查看是否生成慢sql集合“system.profile”。 show collections; 回显中有“system.profile”,说明产生了慢SQL,继续执行下一步。 回显中没有“system.profile”,说明未产生慢SQL,该数据库不涉及慢请求分析。 查看数据下的慢请求日志。 db.system.profile.find().pretty() 分析慢请求日志,查找CPU使用率升高的原因。 下面是某个慢请求日志示例,可查看到该请求进行了全表扫描,扫描了1561632个文档,没有通过索引进行查询。 { "op" : "query", "ns" : "taiyiDatabase.taiyiTables$10002e", "query" : { "find" : "taiyiTables", "filter" : { "filed19" : NumberLong("852605039766") }, "shardVersion" : [ Timestamp(1, 1048673), ObjectId("5da43185267ad9c374a72fd5") ], "chunkId" : "10002e" }, "keysExamined" : 0, "docsExamined" : 1561632, "cursorExhausted" : true, "numYield" : 12335, "locks" : { "Global" : { "acquireCount" : { "r" : NumberLong(24672) } }, "Database" : { "acquireCount" : { "r" : NumberLong(12336) } }, "Collection" : { "acquireCount" : { "r" : NumberLong(12336) } } }, "nreturned" : 0, "responseLength" : 157, "protocol" : "op_command", "millis" : 44480, "planSummary" : "COLLSCAN", "execStats" : { "stage" : "SHARDING_FILTER", [3/1955] "nReturned" : 0, "executionTimeMillisEstimate" : 43701, "works" : 1561634, "advanced" : 0, "needTime" : 1561633, "needYield" : 0, "saveState" : 12335, "restoreState" : 12335, "isEOF" : 1, "invalidates" : 0, "chunkSkips" : 0, "inputStage" : { "stage" : "COLLSCAN", "filter" : { "filed19" : { "$eq" : NumberLong("852605039766") } }, "nReturned" : 0, "executionTimeMillisEstimate" : 43590, "works" : 1561634, "advanced" : 0, "needTime" : 1561633, "needYield" : 0, "saveState" : 12335, "restoreState" : 12335, "isEOF" : 1, "invalidates" : 0, "direction" : "forward", "docsExamined" : 1561632 } }, "ts" : ISODate("2019-10-14T10:49:52.780Z"), "client" : "xxx.xxx.xxx.xxx", "appName" : "MongoDB Shell", "allUsers" : [ { "user" : "__system", "db" : "local" } ], "user" : "__system@local" } 在慢请求日志中,您需要重点关注以下关键字。 全集合(全表)扫描:COLLSCAN 当一个操作请求(如QUERY、UPDATE、DELETE)需要全表扫描时,将大量占用CPU资源。在查看慢请求日志时,发现COLLSCAN关键字,很可能是这些查询占用了CPU资源。 如果该类操作请求较为频繁,建议您对查询的字段建立索引进行优化。 全集合(全表)扫描:docsExamined 通过查看参数“docsExamined”的值,可以查看一个查询扫描了多少文档。该值越大,请求的CPU使用率越高。 不合理的索引:IXSCAN、keysExamined 索引不是越多越好,过多索引会影响写入和更新的性能。 如果您的应用偏向于写操作,建立索引可能会降低写操作的性能。 通过查看参数“keysExamined”的值,可以查看一个使用了索引的查询,扫描了多少条索引。该值越大,请求的CPU使用率越高。 如果索引建立不太合理,或者匹配的结果很多。该场景下,即便使用了索引,请求的CPU使用率也不会降低很多,执行的速度也会很慢。 示例:对于某个集合的数据,a字段的取值很少(只有1和2),而b字段的取值很多。 如下所示,要实现 {a: 1, b: 2} 这样的查询。 db.createIndex( {a: 1} ) 效果不好,因为a相同取值太多 db.createIndex( {a: 1, b: 1} ) 效果不好,因为a相同取值太多 db.createIndex( {b: 1 } ) 效果好,因为b相同取值很少 db.createIndex( {b: 1, a: 1 }) 效果好,因为b相同取值少 关于{a: 1}与{b: 1, a: 1}的区别,可参考官方文档。 大量数据排序:SORT、hasSortStage 当查询请求中包含排序时,“system.profile”集合中的参数“hasSortStage”的值为“true”。如果排序无法通过索引实现,将在查询结果中进行排序。由于排序将占用大量CPU资源,该场景下,需要通过对经常排序的字段建立索引进行优化。 当您在“system.profile”集合中发现SORT关键字时,可以考虑通过索引来优化排序。 其他操作如建立索引、Aggregation(遍历、查询、更新、排序等动作的组合)也可能占用大量CPU资源,但本质上也适用以上几种场景。更多Profiling的设置,请参见官方文档。
  • 分析服务能力 经过前面数据库正在执行的请求和慢请求的分析和优化,所有的请求都使用了合理的索引,CPU的使用率相对趋于稳定。如果经过前面的分析排查,CPU使用率仍然居高不下,则可能是因为当前实例已达到性能瓶颈,不能满足业务需要,此时您可以通过如下方法解决。 通过查看监控信息分析实例资源的使用情况,详情请参见查看监控指标。 对GeminiDB Mongo进行规格变更或者添加分片数量。具体操作请根据当前的实例类型参考如下文档。 添加节点数据量。 变更实例的CPU和内存。
  • 如何导出某张表结构? 建议使用Data Studio图形化客户端进行表数据导出,支持以下几种常见场景: 指定某张表数据的导出。 某个schema下的所有表数据的导出。 某个数据库下的所有表数据的导出。 具体操作请参见导出表数据。 除了使用Data Studio,您也可以通过gs_dump和gs_dumpall工具进行数据导出,支持以下几种常见场景: 导出单个数据库: 数据库级导出。 模式级导出。 表级导出。 导出所有数据库: 数据库级导出。 各库全局对象导出。 具体操作请参见gs_dump和gs_dumpall。 父主题: 数据库使用
  • 创表数目计算方式 根据实例规格不同,创表需要的内存稍有不同,以4U16GB实例为例,可以简单按照单张表768MB计算。 所以创表数目上限=集群可用总内存/单表所需内存 奇数数目集群 集群可用内存=节点内存/2*(N/2+1) 偶数数目集群 集群可用内存=节点内存/2*(N/2) 例如: 3节点4U16GB实例的可用内存=16/2*(3/2+1)=16GB 创表数目上限=16*1024MB/768MB=21 4节点4U16GB实例的可用内存=16/2*(4/2)=16GB 创表数目上限=16*1024MB/768MB=21 5节点4U16GB实例可用内存=16/2*(5/2+1)=24GB 创表数目上限=24*1024MB/768MB=32 根据上述计算方式,4U16GB规格实例的节点个数和表个数对应关系,请参见表1。 表1 4U16GB规格实例的节点数和表个数对应关系 实例规格 节点数量 表个数 4U16GB 3 21 4 21 5 32 6 32 7 42 8 42 9 53 10 53 11 64 12 64 单表占用内存为768MB,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算,换算公式为(768/12)*tokens个数。 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。 根据上述计算方式,8U32GB规格实例的节点个数和表个数对应关系,请参见表2。 表2 8U32GB规格实例的节点个数和表个数对应关系 实例规格 节点个数 表个数 8U32GB 3 22 4 22 5 34 6 34 7 45 8 45 9 56 10 56 11 68 12 68 单表占用内存为1440MB,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算,换算公式为(1440/ 12 )* tokens个数。 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。 根据上述计算方式,16U64GB规格节点个数和表个数对应关系,请参见表3。 表3 16U64GB规格节点个数和表个数对应关系 实例规格 节点个数 表个数 16U64GB 3 45 4 45 5 68 6 68 7 91 8 91 9 113 10 113 11 136 12 136 单表占用内存1440MB,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算,换算公式为(1440/ 12 )* tokens个数。 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。 根据上述计算方式,32U128GB规格节点个数和表个数对应关系,请参见表4。 表4 32U128GB规格节点个数和表个数对应关系 实例规格 节点个数 表个数 32U128GB 3 68 4 68 5 102 6 102 7 136 8 136 9 170 10 170 11 204 12 204 单表占用内存1920MB,表tokens个数为默认值12,如果单独设置了tokens,则需要单独计算。换算公式为 (1920 / 12 )* tokens个数。 上述表个数都是按照普通表计算的,如果开启了流表,一张流表耗费的资源为2.5个普通表。