• [问题求助] GaussDB(DWS)第一期免费试用活动之机器学习
    在官方文档中并未查询到有关机器学习方面的资料。目前市场中已经有一部分数据库公司正在进行机器学习方面的功能研发,比如gbase的GBMLLib库,可以进行简单的数据挖掘和机器学习功能,请问DWS是否也有类似的功能?
  • [问题求助] GaussDB(DWS)第一期免费试用活动之白名单
    针对白名单机制,我印象里pgxc里使用pg_hba.conf进行白名单限制,因为DWS暂时不能访问服务器,我想请教下,比如集群需要停业务时,DWS在那一层限制白名单的访问呢?
  • [实践系列] GaussDB(DWS)实践系列-工作负载管理交付指南(线上版本)
    一、    场景介绍当有多个数据库用户同时在DWS上执行SQL作业时,可能出现以下情况:一些复杂SQL可能会长时间占用集群资源,从而影响其他查询的性能。例如一组数据库用户不断提交复杂、耗时的查询,而另一组用户经常提交短查询。在这种情况下,短时查询可能不得不在队列中等待耗时查询完成。一些SQL由于数据倾斜、执行计划未调优等原因,占用过多内存空间,导致其他语句因申请不到内存而报错,或占用过多磁盘空间,导致磁盘满而触发集群只读,无法进行写入。         为了提高系统整体吞吐量,避免坏SQL影响系统整体运行,您可以使用DWS工作负载管理功能处理这类问题,DWS工作负载管理以工作负载队列为资源承载,对于不同的业务类型可以创建不同的工作负载队列,为这些队列配置不同的资源占比,然后将数据库用户添加至对应的队列中,以此来限制这些数据库用户的资源使用。例如,将经常提交复杂查询作业的数据库用户分为一类,为这类用户创建一个工作负载队列并给这个队列分配多一些的资源,之后将这类用户添加至这个队列中,那么这类用户所提交的复杂作业只能使用所创建队列拥有的资源;同时再创建一个占用资源较少的队列分配给执行短查询的用户使用,这样两种作业就能够同时执行互不影响。二、    框架介绍在实际业务运行中,系统压力可能集中在集群中的一部分节点或者系统资源中的某项资源,导致系统资源不能充分利用,集群性能不能充分发挥。因此,GaussDB(DWS)提供了基于用户资源池的资源管理功能,将不同类型的作业关联到不同的资源池分别管理,以实现系统资源(并发、CPU、内存、存储空间)的隔离和作业的异常处理,避免发生资源的不合理占用。工作负载管理支持配置的队列资源包含:并发、内存、CPU及磁盘空间,关联该队列的用户执行的所有作业均受队列资源限制。总体架构如下:三、    配置指南(一)    页面基本操作1.  进入工作负载管理步骤1:登录华为云或HCS首页,选择数据仓库服务跳转到DWS管理控制台。步骤2:在集群列表中单击需要访问“工作负载管理”页面的集群名称,例如DWS_openlab。步骤3:切换至“工作负载管理”页签。在工作负载管理页面,您可以修改工作负载管理的全局配置,可以在工作负载管理页面添加、创建、修改工作负载队列,添加数据库用户至队列,也可以将队列中的某个数据库用户从队列中移除。负载管理页面添加、创建、修改工作负载队列,添加数据库用户至队列,也可以将队列中的某个数据库用户从队列中移除,页面概览如下。----结束2.  打开或关闭工作负载管理工作负载管理配置包括工作负载开关、全局最大并发数。这里的全局最大并发数指的是单个CN上的最大并发数,如果您通过工作负载开关关闭了工作负载管理功能,那么所有的工作负载管理功能将不再可用。3.  资源配置在“资源配置”一栏,您可以浏览当前工作负载队列的资源配置情况,包括“CPU资源(%)”、“内存资源(%)”、“存储资源(MB)”、“查询并发”。4.  设置异常规则在“异常规则”一栏,您可以浏览当前工作负载队列中的异常规则设置情况,异常规则允许您对队列中用户执行的作业做异常控制。5.  关联用户在“关联用户”一栏,您可以浏览当前工作负载队列中已关联的用户,且可以看到当前时间每个用户已使用的内存以及磁盘使用量,如下图所示。(二)    添加工作负载队列步骤1: 登录DWS管理控制台。步骤2: 在集群列表中单击需要访问“工作负载管理”页面的集群名称。步骤3: 切换至“工作负载管理”页签。步骤4: 单击工作负载队列旁的“+”符号添加队列。【说明】最多可创建63个工作负载队列。步骤5: 参见表1-1填写工作负载队列的名称和相关资源配置。表1-1 工作负载队列参数参数项描述取值名称工作负载队列的名称。queue_testCPU资源(%)队列中的数据库用户在执行作业时可使用的CPU时间片比例。20内存资源(%)队列所占用的内存百分比。注意:当前版本的“内存资源(%)”与“查询并发”只有一个生效。20储存资源(MB)可使用的永久表空间大小。1024查询并发队列中的最大查询并发数。注意:当前版本的“内存资源(%)”与“查询并发”只有一个生效。10显示添加工作负载队列:【说明】参数项中,CPU资源是配额,当系统有空闲CPU资源时,可以允许超过CPU设置的配额值。内存资源、储存资源、查询并发参数是限额。步骤6: 核对信息后,单击“确定”,添加队列完成。----结束(三)    修改工作负载队列在工作负载队列中,您可以对某个工作负载队列的参数进行修改。步骤1: 登录DWS管理控制台。步骤2: 在集群列表中单击需要访问“工作负载管理”页面的集群名称。步骤3: 切换至“工作负载管理”页签。步骤4: 在左侧“工作负载队列”中单击需要修改的队列名称,出现如下页面,包括“短查询配置”、“资源配置”、“异常规则”、“关联用户”。步骤5: 修改短查询配置。修改为相应取值,单击右侧“保存”。如果集群中运行的是查询业务,或查询跑批混合业务,建议开启短查询加速,并根据当前队列在每个CN上可能运行的最大短查询并发数来设置短查询并发。这样,在系统中占用内存小于32MB的短查询将会单独排队运行,不和跑批复杂查询一起排队,加快短查询响应速度。参数项描述取值短查询加速短查询加速开关,默认打开打开短查询并发短查询作业为执行估算内存小于32MB的查询作业,默认值"1"表示不管控。10配置完成后点击保存:步骤6: 修改资源配置。(1)单击右侧“编辑”,参见表1-2修改相应参数。表1-2 工作负载队列参数参数项描述取值名称工作负载队列的名称。queue_testCPU资源(%)队列中的数据库用户在执行作业时可使用的CPU时间片比例。20内存资源(%)队列所占用的内存百分比。注意:当前版本的“内存资源(%)”与“查询并发”只有一个生效。20储存资源MB)可使用的永久表空间大小。1024查询并发队列中的最大查询并发数。注意:当前版本的“内存资源(%)”与“查询并发”只有一个生效。10(2)单击“确定”。【说明】CPU和内存支持动态调整。约束条件:参数值调小时无限制;参数值调大时,如果总配置值(参数调整值+已配置值)超过100%,需要先将空闲队列参数值调小,再将目标队列参数值调大,控制参数总配置值不超过100%。存储资源支持动态调整。约束条件:参数值调大时无限制;参数值调小时,如果设置值大于已使用空间,支持修改,如果设置值小于已使用空间,不支持修改(报错)。查询并发支持动态调整。约束条件:无。步骤7: 修改异常规则。(1)参见表1-3修改相应参数。说明:异常规则允许您对队列中用户执行的作业做异常控制,目前支持表1-3的相关配置。– 如选择“终止”,则需要设置相应时间。– 如选择“不约束”,则无异常规则约束。表1-3 异常规则参数参数项描述取值阻塞时间作业的阻塞时间,单位秒。包括全局并发排队以及局部并发排队的总时间。例如,如果配置“阻塞时间”为300秒,那么当该队列中的用户执行的某个作业在阻塞300秒后将会被杀死。1200执行所消耗时间作业的已被执行时间,单位秒。从开始执行到当前所消耗的时间。例如,如果配置“执行所消耗时间”为100秒,那么当该队列中的用户执行的某个作业在执行超过100秒后将被杀死。2400所有DN上CPU总时间作业在所有DN上执行时所耗费的CPU总时间,单位秒。100检查倾斜率的时间间隔检查作业执行CPU倾斜率的间隔时间,单位秒,需同“所有DN上CPU时间的倾斜率”一起设置。2400所有DN上CPU总时间倾斜率作业在DN上执行时的CPU时间的倾斜率,依赖于“检查倾斜率的时间间隔”的设置。90(2)单击“保存”。步骤8: 关联用户。说明:一个数据库用户只有被添加到某个队列中之后,该用户运行作业所使用的资源才能被管控。一个数据库用户只能被添加至一个队列中,从队列中移除的用户可以再次添加至其他队列。(1) 单击右侧“添加”。(2)从当前用户列表中,勾选需要添加的用户,一次可勾选多个。(3)单击“确定”。(4)如果需要删除用户,则单击待删除用户所在行右边的“删除”即可。----结束(四)    查询概览步骤1: 登录DWS管理控制台。步骤2: 在集群列表中单击需要访问“工作负载管理”页面的集群名称。步骤3: 切换至“工作负载管理”页签。步骤4: 在左侧“工作负载队列”中单击需要查看的队列名称。在“查询概览”区域:可以看到当前时间当前队列中正在运行的长短查询数,图表信息15秒刷新一次。----结束(五)    删除工作负载队列步骤1: 登录DWS管理控制台。步骤2: 在集群列表中单击需要访问“工作负载管理”页面的集群名称。步骤3: 切换至“工作负载管理”页签。步骤4: 在左侧“工作负载队列”中单击需要删除的队列名称。步骤5: 单击右侧的“删除”。说明:删除队列时如果队列中有关联的数据库用户,那么队列删除后这些用户将被关联默认队列。(六)    资源限制相关参数除了页面提供的工作负载管理功能外,DWS也提供了一些guc参数,来限制单语句占用的最大资源,避免单个语句占用过多资源,导致系统不可用。query_max_memory: 限制单语句在单DN上占用的最大内存量,如单语句分配内存超过这个值,将进行报错,将内存归还给系统。建议按如下方法配置:登陆任意CN查询:execute direct on (dn_1) 'select * from pg_total_memory_detail where memorytype = ''max_dynamic_memory''';查出来的值即为单个DN上所有SQL可以使用的总内存。建议根据业务并发数,将query_max_memory设置为上步查出总内存的1/2, 1/3,假设系统表发数较小(<20),可设置为1/2, 如为中大并发(>20),可设置为1/3。sql_use_spacelimit:限制单语句在单个DN上最大插入的数据量大小,如单语句在单个DN上插入数据量超过这个值,将进行报错,避免单个SQL在单个DN上插入的数据量过大,造成DN严重倾斜,导致性能差,及磁盘满问题。建议此参数设置为单DN可用总空间的1/5。----结束四、    最佳实践以下以两个实践案例来说明工作负载管理的实际应用。其中案例一为XX财政工作负载管理配置,可以作为小规模集群(一般小于50节点)混合业务场景下的配置参考。案例二为XX银行工作负载管理配置,可以作为中大规模集群联机查询和复杂跑批混合业务场景下的配置参考。其中的配置指标需要根据实际业务需求确定。(一)    小规模集群:XX财政工作负载管理规划XX财政业务场景主要分为联机交易(OLTP)和报表分析(OLAP)两大类,其中报表服务的优先级相对较低,在合理的情况下优先保障业务系统的正常运行。XX财政节点规模较小,其工作负载管理目标为避免报表分析业务影响联机交易,其资源负载管理配置可供中小规模集群(<60节点)的数据集市、BI分析、小型数仓集群参考。业务系统中运行的SQL分为简单SQL和复杂SQL,大量复杂SQL的并发执行会导致数据库服务器资源争抢,简单SQL的大量并发对服务器不构成持续压力,短时间内可执行完成,不会造成业务堆积。其中报表服务中运行的SQL以复杂SQL居多,整体业务逻辑相对复杂,在数据库层面需要分别对核心交易和报表服务进行合理的资源管控,以保障业务系统正常运行。报表分析类业务的优先级和实时性相对较低,但是复杂度更高,为有效进行资源管控,将报表分析和核心交易业务进行数据库用户分离,例如核心交易业务使用数据库用户budget_config_user,报表分析业务使用数据库用户report_user。针对交易用户和报表用户分别进行CPU资源和并发数控制以保障数据库稳定运行。结合报表分析业务的负载调研、日常监控和测试验证,50并发以内的复杂报表SQL不会引起服务器资源争抢,不会引起业务系统卡慢,配置报表用户可使用20%的CPU资源。结合核心交易业务的负载调研、日常监控和测试验证,100并发以内的查询SQL不会对系统造成持续压力,配合交易用户可使用60%的CPU资源。交易用户资源配置:CPU=60%,并发=200,内存=60%,存储=1024000MB。报表用户资源配置:CPU=20%,并发=20,内存=20%,存储=1024000MB。设置单个语句最大内存使用量,超过使用量则报错退出,避免单个语句占用过多内存。异常规则中设置阻塞时间=1200S,执行所消耗时间1800s,强制终止。(二)    中大规模集群:XX银行工作负载管理规划XX银行使用DWS作为银行核心数据仓库,每日运行批处理任务,也供业务用户进行一些灵活查询。为了更充分的利用系统资源,同时兼顾到各个类型业务的要求,根据DWS工作负载管理提供的能力,设计了XX银行工作负载管理方案。XX银行节点规模大,达240节点,其工作负载管理目标为合理调配多种业务占用的资源,达到资源利用效率的最佳配置,其资源负载管理配置可供中大规模集群(>60节点)的企业级数据仓库、行业云数据仓库参考。XX银行数据仓库中的任务可以分为以下三大类:跑批任务。跑批任务是数据仓库内主要运行的任务,主要分为数据加载、批量加工和数据导出三类。其中,加载作业先运行,然后是批量加工作业,最后由数据导出作业将加工的结果同步到下游系统。加载作业主要在0:00~05:00运行,批量加工作业基本持续一整天,需要和其他类型任务一起综合考虑资源分配。导出任务主要在12:00~14:00运行。业务用户灵活查询。业务灵活查询由业务分析师、数据挖掘工程师等发起,主要在上班时间内进行,即每天09:00~12:00, 14:00~20:00两个时间段。运维任务(备份等)。运维任务主要是数据备份。当前XX银行数据备份采用的是GDS导出方案,主要在20:00~24:00运行。具体工作负载计划见下表所示:因此,根据上述6类任务类型,划分6个队列,每个队列都可以在相应时间段内按照负载计划自动调整资源利用情况(自动调整资源功能需升级到最新版本才能使用),在每个时间段内分配不同的并发、CPU、内存资源,实现了不同时间段内作业优先级的动态调整,即保证了业务优先级,也使得系统总体资源利用最大化。同时,每个队列也根据业务实际需求分配了最大空间使用量。下图为相应的负载模型,将不同的用户加入到不同的队列中,来实现对用户占用资源的管控。此外,针对异常作业占用过多资源问题,XX银行也利用DWS异常处理功能,设置了丰富的异常SQL处理规则,见下表所示:    同时,为了避免单个语句占用过多磁盘、内存资源,也可以使用以下参数来对单语句使用的内存、磁盘空间资源进行限制。query_max_memory:限制单语句在单DN上占用的最大内存量,如单语句分配内存超过这个值,将进行报错,将内存归还给系统。XX银行单DN最大可用动态内存为100GB,并发数为60,query_max_memory设置为30GB。sql_use_spacelimit:限制单语句在单个DN上最大插入的数据量大小,XX银行单个DN可用磁盘空间为2TB,sql_use_spacelimit设置为400GB。GaussDB(DWS)实践系列-工作负载管理交付指南(线下版本)博文: https://bbs.huaweicloud.com/blogs/266993论坛: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=128274想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料~
  • [实践系列] GaussDB(DWS)实践系列-工作负载管理交付指南(线下版本)
    一、    场景介绍对于线下GaussDB(DWS)交付版本,在项目交付中可能会遇到同时包含核心交易(OLTP)和报表分析(OLAP)的混合业务场景,其中报表分析类业务复杂度高,消耗大量系统资源,但实时性要求较低,而核心交易类业务并发较大,多为简单事务处理,对实时性要求高。当系统处于业务高峰时,报表分析类业务并发操作会加剧系统负载,且长时间占用资源无法释放,最终可能导致整体性能裂化,实时性要求较高的核心交易类业务因资源争抢而无法得到响应,从而影响客户整体体验。资源管控的目的是基于业务场景和可用资源,进行合理的资源与并发度管控,以保障数据库可以在高负载场景下正常运行,不会因为资源争抢和耗尽出现系统卡死,提升系统整体吞吐量。如上图所示,业务场景主要分为核心交易(OLTP)和报表分析(OLAP)两大类,其中报表服务的优先级相对较低,在合理的情况下优先保障业务系统的正常运行。业务系统中运行的SQL分为简单SQL和复杂SQL,大量复杂SQL的并发执行会导致数据库服务器资源争抢,简单SQL的大量并发对服务器不构成持续压力,短时间内可执行完成,不会造成业务堆积。其中报表服务中运行的SQL以复杂SQL居多,整体业务逻辑相对复杂,在数据库层面需要分别对核心交易和报表服务进行合理的资源管控,以保障业务系统正常运行。二、    方案规划GaussDB(DWS)资源负载管理的核心是资源池,而配置资源池首先要在环境中实现控制组Cgroups的设置。gs_cgroup是GaussDB(DWS)提供的负载管理工具。负责创建默认控制组、创建用户自定义控制组、删除用户自定义控制组、更新用户自定义组的资源配额和资源限额、显示控制组配置文件内容、显示控制组树形结构和删除用户的所有控制组,结合现网业务场景规划方案如下。(一)    静态资源池规划静态资源池可以控制数据库能使用服务器资源的上限,由于服务器操作系统运行也需要消耗一定的资源,因此预留一定的服务器资源来保障操作系统的正常运行。    推荐静态资源池配置:数据库分配93% CPU资源和70% 内存资源。这样可以保证服务器能够正常响应系统请求。静态资源池分配93% CPU资源和70% 内存资源。(二)    交易用户和报表用户分离报表分析类业务的优先级和实时性相对较低,但是复杂度更高,为有效进行资源管控,将报表分析和核心交易业务进行数据库用户分离,例如核心交易业务使用数据库用户budget_config_user,报表分析业务使用数据库用户report_user。针对交易用户和报表用户分别进行CPU资源和并发数控制以保障数据库稳定运行。结合报表分析业务的负载调研、日常监控和测试验证,20并发以内的复杂报表SQL不会引起服务器资源争抢,不会引起业务系统卡慢,因此配置报表用户最多使用20%的CPU资源。结合核心交易业务的的负载调研、日常监控和测试验证,50并发以内的复杂SQL不会对系统造成持续压力,整体CPU负载小于60%。例如可以进行如下配置。交易用户分配60%的CPU配额和50并发。报表用户分配20%的CPU限额和20并发。其中CPU配额是指占用CPU时间片的百分比。若分配给某个用户的CPU配额资源未使用,系统会自动将这些资源共享给其他用户。CPU限额是指用户可以使用的CPU核数的百分比。系统会将百分比换算成具体的核数供用户使用,且用户可使用的CPU限额资源不超过通过百分比换算的核数范围。(三)    并发管控阈值设置资源管控的并发控制是基于SQL的cost值(SQL执行代价)来评估,结合客户场景、硬件配置和SQL测试分析,当SQL的cost值小于1000时,SQL并发对服务器不构成持续压力,短时间内可执行完成,不会造成业务堆积。当SQL的cost值大于1000时,大量并发会导致服务器资源争抢,引起系统卡慢。因此将受控SQL的cost的临界值设置为1000。当SQL的cost值大于1000时受资源管控的并发度控制,当SQL的cost值小于1000时不受资源管控的并发度控制。区分SQL复杂和简单的cost值设置为1000三、    配置指南(一)    配置静态资源池登录FusionInsight管理平台。点击集群界面点击静态服务池点击右上角配置,如下所示,把CPU改成93%,内存改为70%。权重全部改为100%,点击根据权重配置生成详细配置。点击最下面的确定按钮,在弹出窗进行确定。 (二)    数据库用户分离创建交易用户(budget_config_user)和报表用户(report_user)。(三)    配置cgroup使用omm用户登录数据服务器,执行如下命令设置CPU配额:source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegs_ssh -c "gs_cgroup -c -S class1 -s 60"gs_ssh -c "gs_cgroup -c -S class1 -G wg1 -g 99"gs_ssh -c "gs_cgroup -c -S class2 -s 20 "gs_ssh -c "gs_cgroup -u -S class2 -s 20 --fixed"gs_ssh -c "gs_cgroup -c -S class2 -G wg2 -g 99 "(四)    创建资源池并绑定cgroup使用omm用户登录数据库服务器,执行如下命令设置并发管控:source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegSQL -d postgres -p 25308 -c "create resource pool rp1 with (mem_percent=0,active_statements=50,control_group='class1:wg1');”gSQL -d postgres -p 25308 -c "create resource pool rp2 with (mem_percent=0,active_statements=20,control_group='class2:wg2');"(五)    用户绑定资源池使用omm用户登录数据库服务器,执行如下命令将用户绑定资源池:source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegSQL -d postgres -p 25308 -c "alter user budget_config_user resource pool 'rp1';"gSQL -d postgres -p 25308 -c "alter user report_user resource pool 'rp2';"(六)    修改数据库参数并重启生效使用omm用户登录数据库服务器,执行如下命令修改数据库参数:source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegs_guc reload -Z coordinator -Z datanode -N all -I all -c "parctl_min_cost=1000"gs_guc set -Z coordinator -Z datanode -N all -I all -c "enable_dynamic_workload=off"cm_ctl stopcm_ctl start四、    资源管控测试验证(一)    测试SQL样例select count(1) from p#fasp_t_glctrl122299 a,p#fasp_t_glctrl122299 b;打印执行计划如下,cost值大于1000,已按方案设置资源管控的并发控制阈值cost为1000:(二)    交易用户并发验证使用交易用户budget_config_user使用测试SQL样例(cost值大于1000)启动100并发测试使用budget_config_user进行100并发样例SQL验证,当并发数达到50时管控,超过50并发后剩余SQL在管道内排队等待执行。(三)    报表用户并发验证使用报表用户report_user使用测试SQL样例(cost值大于1000)启动100并发测试使用report_user进行100并发样例SQL验证,当并发数达到20时管控,超过20并发后剩余SQL在管道内排队,等待执行。(四)    报表用户和交易用户同时并发验证分别使用交易用户budget_config_user和报表用户report_user使用测试SQL样例(cost值大于1000)分别启动100并发测试使用budget_config_user和report_user分别进行100并发样例SQL验证,交易用户并发50受控,报表用户并发20受控。(五)    报表用户限额CPU验证使用报表用户report_user使用测试SQL样例(cost值大于1000)启动100并发测试CPU限额设置20%,使用report_user进行100并发样例SQL验证,CPU使用达到20%时进行资源管控。CPU限额设置30%,使用report_user进行100并发样例SQL验证,CPU使用达到30%时进行资源管控。(六)    交易用户配额CPU验证使用交易用户budget_config_user使用测试SQL样例(cost值大于1000)启动100并发测试在配额60%CPU的情况下,CPU使用可以超过60%,不进行CPU强制限制(这点与限额不同),业务高峰时可以根据业务情况弹性扩展。GaussDB(DWS)实践系列-工作负载管理交付指南(线上版本)博文: https://bbs.huaweicloud.com/blogs/266991论坛: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=128276想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料~
  • [问题求助] DWS免费使用——vacuum与analyze
    1、vacuum、vacuum full和analyze走并发?默认并发是多少?通过什么方式控制并发?并发高对数据库或业务有何影响?
  • [问题求助] DWS免费试用——
    在使用过程中遇到的疑惑:1、创建dws时初始化一个系统管理员,若该系统管理员权限被回收,又如何重新赋予?2、系统管理员输入密码次数超过阈值被锁,如何快速解锁?被锁后自动解锁的时间是多久?
  • gaussdb c80 spc200 查询报错
    gaussdb c80spc300 执行sql报错如下,应该如何定位:Traceback (most recent call last):  File "xxxxxx.py", line 225, in utils.xxx_comm_db_operator.CommDbOperator.do  File "build/bdist.linux-x86_64/egg/jaydebeapi/__init__.py", line 503, in execute    _handle_sql_exception()  File "build/bdist.linux-x86_64/egg/jaydebeapi/__init__.py", line 156, in _handle_sql_exception_jpype    reraise(exc_type, exc_info[1], exc_info[2])  File "build/bdist.linux-x86_64/egg/jaydebeapi/__init__.py", line 501, in execute    is_rs = self._prep.execute()DatabaseError: org.postgresql.util.PSQLException: ERROR: dn_6017_6018: Failed to read response from Datanode, remote:dn_6001_6002, detail:1049   Stream closed by remote.[2021-05-12 03:05:32][FOREIGN_D_CHECK_TAB_CNT_STAC][1760][  ERROR] Exception:org.postgresql.util.PSQLException: ERROR: dn_6017_6018: Failed to read response from Datanode, remote:dn_6001_6002, detail:1049   Stream closed by remote.
  • 华为中国生态大会2021即将举行,GaussDB精彩内容抢先知
     当前企业数字化转型欣欣向荣,云原生、生态开放等理念进一步深入人心,在越来越多的客户实践中取得重大性突破,为企业数字化转型注入了新动能。 随着数字化转型的加快,企业对云数据库的要求也水涨船高。云数据库如何应对企业日益增长的业务需求?如何进行自我创新,不断突破传统数据库瓶颈?如何实现数据库生态开放,保护客户的投资? 来华为中国生态大会2021华为云GaussDB分论坛现场,华为云数据库CTO将分享云原生数据库GaussDB的全栈能力和行业解决方案,介绍最新的生态合作计划,并联合行业合作伙伴共同发布3大解决方案,共建GaussDB数据库生态,共享数字化繁荣! 5月17日-18日,华为云GaussDB诚挚邀您参会,聚力同行,共创商业价值!欢迎戳此链接进入官网报名 https://e-campaign.huawei.com/campaign/partner2021-minisite-1/home/ 
  • [实践系列] GaussDB(DWS)倾斜表查询实践
    原文链接:https://bbs.huaweicloud.com/blogs/266743GaussDB(DWS)是MPP并行架构,若表的数据存在倾斜情况,会引起一系列性能问题,影响用户体验,严重时可能会引起系统故障。因此能快速获取倾斜的表并整改是GaussDB(DWS)运维管理人员比较关注的事情。GaussDB(DWS)自身提供table_skewness函数来查询倾斜情况,但实际实践过程中,该函数存在性能问题,而且本身的倾斜率计算有问题,实践过程中,该函数获取的倾斜率在不高的情况下,存在严重倾斜情况。因此项目实践过程中急需一个性能好且能表达倾斜情况的函数或视图。GaussDB(DWS)有获取每个DN的空间大小函数table_distribution,通过该函数,我们能快速获取每个DN的大小,同时根据每个DN的大小,来获取表的倾斜情况:skewness = (max(dnsize)-avg(dnsize))*100/max(dnsize)根据倾斜公式,我们得出以下SQL,该SQL能快速获取schema所有表的倾斜情况,下面以public为例:select schemaname,tablename,sum(dnsize)/1024^3 dnsize_gb,(max(dnsize) - avg(dnsize))*100/nullif(max(dnsize),0) skewness_factor from ( select schemaname ,tablename ,(regexp_split_to_array(tbl_dis,'[\,\(\)]+'))[4]::bigint as vprocname ,(regexp_split_to_array(tbl_dis,'[\,\(\)]+'))[5]::bigint as dnsize from ( select nspname as schemaname ,relname as tablename ,table_distribution(nspname,relname)::text as tbl_dis from pg_class a inner join pg_namespace b on a.relnamespace = b.oid and a.relkind = 'r' and b.oid not in (100) ) ) where schemaname= 'public' group by 1,2 order by 3 desc;结果样例如下,通过例子,可以看出来,test13这个表2GB,且发生严重的倾斜97%
  • [实践系列] GaussDB(DWS)集群运维巡检保障指导书
  • [实践系列] GaussDB(DWS)数据库审计方案
      GaussDB(DWS)将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。本文系统介绍了审计相关的服务功能配置,日志查看,日志维护内容。
  • [实践系列] GaussDB(DWS)数据库安全方案
    本文从数据库客户端接入、数据库通信、数据访问、数据加密脱密、数据导出安全介绍DWS数据库安全方案
  • [技术干货] 华为云数据库GaussDB(for Cassandra)揭秘第三期:高性能低成本是什么样的体验?
    在我们的日常理念中,追求性价比是最为常见的,但是你知道购买低配置还能享受高性能、低延时、超低价的数据库有哪些吗?今天我们就用数据说话,带你深入了解GaussDB(for Cassandra)挑战高性价比!众所周知,有数据的地方就需要用数据库,GaussDB(for Cassandra)最擅长在物流、内容分发、视频直播等海量数据的场景中,这样才能发挥它的特长。本次围绕GaussDB(for Cassandra)新推出的2U8G小规格做一组测试并与自建ECS+开源Cassandra 8U32G进行性能和成本上的对比,快来和我一探究竟吧。 1、客户端压测工具测试工具版本参考地址YCSB0.15.0https://github.com/brianfrankcooper/ycsb/tree/0.15.0/cassandra2、数据模型3、部署数据库3.1  华为云购买GaussDB(for Cassandra) 本次对比测试,采用华为云GaussDB(for Cassandra)2U8G规格,部署3个节点,申请100GB存储空间。具体操作如下: 备注:GaussDB(for Cassandra)采用DFV共享存储方案,存储层已实现三副本,该申请存储空间为业务数据可使用的空间。如上按需费用为5.62元/小时,包年费用是21,034元。确认规格/节点数/存储空间,直接购买,约8分钟即可创建完成。创建实例后,每个业务节点对应一个系统容器,挂载2个磁盘(20G/40G),作为操作系统盘和日志盘。3.2  公有云购买ECS部署开源Cassandra本次对比测试,开源Cassandra采用购买ECS,自行部署Cassandra开源软件场景,同样部署3个节点,每个ECS在申请60GB的系统盘/日志盘的基础上,再额外申请100GB数据盘,作为Cassandra数据存储使用。3.2.1 )公有云购买ECS虚拟机选择8U32G ECS规格,60GB的系统盘/日志盘,100G数据盘。X86平台按需费用为3.074元/小时,包年费用是11,196元。3.2.2 )安装与操作开源CassandraECS创建好后,将开源Cassandra搭建到ECS上,具体操作步骤参考以下链接地址(详见4.1章节),链接地址:https://bbs.huaweicloud.com/forum/thread-110605-1-1.html。4、操作步骤4.1  创建表模型创建keyspace:create keyspace ycsb WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };进入keyspace:use ycsb;创建usertable:create table usertable ( y_id varchar primary key, field0 varchar, field1 varchar, field2 varchar, field3 varchar, field4 varchar, field5 varchar, field6 varchar, field7 varchar, field8 varchar, field9 varchar);4.2 数据准备阶段nohup ./bin/ycsb load cassandra-cql -P workloads/workload-insert-mostly -threads $THREAD_COUNT -s > $LOG_FILE 2>&1 &4.3  YCSB四种业务模型压测5、 YCSB四种业务模型测试结果5.1  测试结果指标说明5.2  GaussDB(for Cassandra) 2U8G测试结果5.3  自建ECS+开源Cassandra 8U32G测试结果经测试,开源Cassandra自建8U32G与GaussDB(for Cassandra)使用GaussDB(for Cassandra) 2U8G性能上持平,具体测试结果如下:6、 扩容操作华为云GaussDB(for Cassandra)采用存算分离架构,在计算扩容和存储扩容方面,无需进行数据搬迁,可以做到秒级运维。6.1  扩容GaussDB(for Cassandra) 实例6.1.1)计算扩容在实例管理界面,选中添加节点,进入如下页面,可以选择本次扩容计算的节点个数。本次扩容以1个2U8G节点为例,具体如下: 按需1.75元/小时,包年费用是6,178元。6.1.2 )存储扩容在集群基本信息页面,点击磁盘扩容,即可对磁盘空间进行扩容,按需0.00378元/GB/小时,包月是2.5元/GB/月,包年是25元/GB/年,增加100GB磁盘空间就是2500元/GB/年。6.2   扩容自建ECS+开源Cassandra自建Cassandra在扩容计算和存储期间,需要自行购买ECS计算节点,以及对应超高IO存储。手工修改节点配置、新加集群以及搬迁数据等。6.2.1)计算扩容      自建Cassandra扩容计算,如上述购买多1台ECS虚拟机,挂载磁盘为60GB的系统盘/日志盘。时间推算需要30分钟。       以上按需费用是2.934元/小时,包年费用是10,196元6.2.2)存储扩容       自建Cassandra扩容存储,在原挂载数据盘的基础上进行扩容。以上述实例为例,3个节点每个ECS的数据盘从100GB扩展到200GB,一共扩容300GB(3*100GB),300G费用为3000元/年。开源存储磁盘扩容按32Mbps/s的迁移速度算每秒为12MB,每分钟处理0.703GB的数据,迁移100GB的数据需要约2小时(100/0.703=142.2分钟)。7、 总结7.1 性价比对比从性价比看,华为GaussDB(for Cassandra)在相同存储容量以及性能表现下,费用仅为开源自建Cassandra的63%,具体如下:相同的数据空间,华为云GaussDB(for Cassandra)仅需要开源Cassandra 1/3的存储价格,享有高性能及更多的运维能力加持,享受非比寻常的体验。7.2   运维能力对比以典型的计算扩容和存储扩容场景为例,分析扩容100G存储以及扩容1个计算节点场景,从费用/时长方面做出对比,可看出用华为云GaussDB(for Cassandra),在费用和操作时长方面均有优势,扩容时长方面更是秒级扩容,一眼可见华为云GaussDB(for Cassandra)高扩容能力,具体如下:综上所述,用开源Cassandra 63%的价格,享受一样的性能,存储实现秒级扩容,享有更好的运维能力,使用更好的架构最大化的节省成本,华为云GaussDB(for Cassandra)值得你拥有。8、附录本文作者:华为云高斯Cassandra团队杭州西安深圳简历投递:zhaojuan.zhao@huawei.com更多技术文章,请关注高斯Cassandra官方博客:https://bbs.huaweicloud.com/community/usersnew/id_1604998578768602高斯Cassandra官方首页:https://www.huaweicloud.com/product/gaussdbforcassandra.html
  • [技术干货] GaussDB相比PostgreSQL做了哪些内核优化:
    内核优化        1. 进程模型改为线程模型        2. 高可用架构增强        3. 使用etcd集群存储全局事务号        4. XID事务号从32位改为64位        5. GTM性能增强        6. 流复制增强
  • [技术干货] GaussDB系列数据库简介
    官网下载地址:     https://support.huawei.com/enterprise/zh/software/index.htmlGaussDB 支持哪些数据库的迁移?    GaussDB目前支持TD、Natezza、Oracle、MySQL、DB2、sybase、PG的离线数据迁移, 支持Oracle的全量+增强的在线迁移。GaussDB版本的区别:    GaussDB T(OLTP): 前身是GauussDB 100, 主打OLTP在线事务处理。    用于存储/查询业务应用中活动的数据以支撑日常的业务活动。    对标Oracle及其他关系型数据库。现已运用在招商银行(掌上生活)。    …………………………………………………………………………    GaussDB A(OLAP): 前身是GaussDB 200, 主打OLAP在线分析处理,     用于存储历史数据以支撑复杂的分析操作, 侧重决策支持。    对标Teradata及其他分布式数据库, 目前在工商银行得到上线应用。GaussDB 200隔离级别:        1. GaussDB 200支持的隔离级别是Read Committed(读已提交)和Read Uncommitted(读未提交)。           可重复读和串行化无法从语法上禁止,如果设置为这两个级别,那么和读已提交是一样的隔离效果。        2. GaussDB 200默认隔离级别是读已提交,可以严格保证该隔离级别下的数据的一致性。        3. 读未提交隔离级别建议仅用在应急场景下使用,如果存在某个协调节点故障,若该故障节点涉及残留事务(DDL),若不降低隔离级别,        可能会阻塞操作出现数据不一致的现象。此时可降低隔离级别为Read Uncommitted.        4. 语句: SET TRANSACTION ISOLATION LEVEL READ COMMITTED | READ Uncommitted        注意:             在事务中第一个数据查询和修改语句(SELECT, INSERT, DELETE, UPDATE, FETCH, COPY)执行之后,事务隔离级别就不能被修改GaussDB 200简介:          GaussDB 200是一个基于开源数据库Postgres-XC         (Postgres-xc介绍: https://blog.csdn.net/kwame211/article/details/76875541)         开发的分布式并行关系型数据库系统。                   GaussDB200是华为与工行合作研发的纯OLAP类数据库,GaussDB200基于经典pgxc架构,底层基于postgresql9.2版本研发,是一款分布式mpp数据库                  GaussDB 200 是华为技术有限公司基于开源数据库 PostgreSQL9.2 开发的关系型数据库系统。(https://help.finebi.com/doc-view-439.html)         GaussDB 200 最初是基于PG内核研发的,但经过了十几年的不断更新,内核方面经过了大量的优化与修改                 GaussDB 200采用Share-nothing架构, 由多个拥有独立且互不共享CPU、内存、存储等系统资源的节点组成。         在这样的系统架构中, 业务数据被分散存储在多个物理节点上,          数据分析任务被推送到数据所在位置就近执行, 通过控制模块的协调, 并行地完成大规模的数据处理工作                 官方要求GaussDB200至少需要3个节点来安装
总条数:2746 到第 页
上滑加载中