• [技术干货] 导入数据
    登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,右键普通表名称,单击“导入数据”可选择导入本地Excel文件或者OBS桶文件数据到普通表中。本地导入:从本地上传Excel文件,大小不能超过30M;当导入文件是CSV类型,可填写不同的分隔符对每行数据进行分隔;选择是否有表头,如果无表头,每行数据需要按照选择的表字段进行填写。obs导入:从OBS桶文件中选择文件,也可以选择目录,支持CSV和TEXT文件类型。填写OBS桶导入需要创建外表的一些参数,通过OBS外表将OBS桶文件写入到选择的普通表中,需要注意的是,实时数仓(单机部署)仅8.2.0.100及以上集群版本支持通过OBS文件导入功能。登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,登录需要导出数据的数据源,选择编辑框面板上方对应的数据库和模式。在编辑器框内输入查询SQL语句,单击“运行”按钮。单击查询结果下的“导出”按钮。schema结构文件转储:可以选择某个用户模式导出该模式下表,视图,函数,触发器,序列,同义词等元数据的ddl语句以及表的插入语句。本地导出:将查询SQL的所有结果导出到xlsx或csv文件,可直接在本地打开查看,最多支持导出20000条数据。全量导出:将查询SQL的所有结果导出到指定的OBS桶下的路径中,默认为csv文件。 
  • [技术干货] 操作列/索引/约束/分区
    可在“分区”面板具体选择“分区类型”(范围分区和列表分区)和“可选列”(对应选择表字段)。单击“新增分区”,设置如下参数:分区名称:设置分区名称。分区值:根据上述“可选列”的字段值做分区边界,在范围内选择。单击“新增索引”,设置如下参数:索引名称:设置索引名称,可勾选是否为唯一索引。访问方式:下拉框选择索引访问方式,推荐btree。索引类型:可选“列”和“表达式”。条件索引:增加where条件约束。单击“新增约束”,设置如下参数:约束类型:可选check、unique或primary。表达式(check参数):可设置字段约束条件。约束名称:设置约束名称。可选列(unique\primary参数):下拉框选择可选列。单击“点击预览”显示创建普通表SQL语法。登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,新建普通表后,可对普通表进行编辑操作。登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,右键数据表名称,,如果是查看视图数据,则右键视图名称。单击“查看数据”按钮可新增、筛选查看、编辑和删除普通表数据信息,视图的数据只能筛选,无法编辑。  
  • [技术干货] 新建普通/分区表
    登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,新增模式后,模式包含普通表、外表、视图、函数、序列和同义词等结构。右键普通表名称,再单击“新建普通表”可新增一个表,新增普通表的弹窗包含属性、列、数据分布、分区、索引和约束等选项,其中属性和列字段是必填的选项。可单击SQL预览,查询创建表的SQL语句。数据表名:设置数据表名。表存储方式:可选择ROW和COLUMN。是否分区表:选择该表是否为分区表。描述:输入新建普通表的相关描述。单击“添加列”,设置如下参数:列名:设置列名称。数据类型:下拉框选择新增列对应的数据类型。长度:总位数。置灰表示固定长度。精度: 范围,小数位数。置灰表示无精度设置。非空:勾选新增列是否有非空约束。唯一:勾选新增列是否有唯一约束。有以下三种选择:ROUNDROBIN:表的每一行数据被依次地发送给各个DN。REPLICATION:表的每一行数据存在所有数据节点中,即每个数据节点都有完整的表数据。HASH:对指定的列进行Hash,通过映射,把数据分布到指定数据节点。
  • [技术干货] 数据开发操作
    创建数据库登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,数据源连接成功后,右键数据库名称,再单击“创建数据库”按钮。页面右边弹出“创建数据库”页面,可根据需求填写。数据库名称:设置数据库名称。所有者:下拉框选择创建数据库所有者。兼容模式:下拉框选择数据库兼容模式,包含Oracle、MySQL和Teradata三种,默认为Oracle。编码:下拉框选择创建数据库编码方式,推荐SQL_ASCII。连接限制:输入值不能小于-1,-1表示无限制。描述:输入新增数据库的相关描述。SQL预览:可单击“点击预览”显示创建数据库SQL语法。确认无误后,单击“确定”。登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。切换至“数据源”面板,新增数据库后,数据库包含用户模式、系统模式、外部服务器。右键用户模式名称,再单击“新建模式”按钮。弹出“新增模式”页面,用户可根据需求填写。模式名:设置模式名称。所有者:下拉框选择新建模式所有者。描述:输入新建模式的相关描述。SQL预览:单击“点击预览”显示新建模式SQL语法。确认无误后,单击“确定”
  • [技术干货] 自定义创建连接
    登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。左边有两个面板,“数据仓库”和“自定义”,切换到“自定义”面板,可以单击“新增数据源”(或在“专属集群”页面单击指定集群操作列的“登录”按钮)。集群:选择需要连接的集群。SSL认证:集群开启SSL认证后需要勾选。数据库:填写数据库名称,如果是新创建集群可填写DWS集群默认数据库gaussdb,也可以根据需要进行编辑切换其他数据库。数据源名称:设置数据源名称。用户名:设置用户名称。密码:设置用户的密码。此密码仅用于创建数据源、获取数据源连接以使用WEB-SQL编辑器功能。勾选“记住密码”打开数据源时用默认密码进行登录,不勾选刷新界面或者登录过期打开数据源时需要重新输入密码。登录GaussDB(DWS)管理控制台。在左侧导航栏中,选择“数据 > SQL编辑器”。左边有两个面板,“数据仓库”和“自定义”,数据仓库是IAM子用户登录,只支持拥有DWS Database Access角色权限的子账号。符合条件后可选择一个集群名称单击打开,即连接上集群数据库可进行操作。
  • [技术干货] SQL编辑器
    SQL编辑器基于DWS集群数仓提供用户快速登陆开发数据的能力,致力于为用户提供一站式数据开发、接入、处理等功能的平台,帮助用户快速连接DWS集群,减少操作的复杂性。工具提供自定义数据源和IAM账号直接登陆两种连接方式,支持数据库、模式、表图形化操作管理,支持SQL编辑执行,执行计划可视化,结果集可图形渲染和导出,支持OBS数据导入导出,支持SQL脚本文件上传到OBS,提供SQL分析给出修复建议,支持执行SQL记录查看等能力。从DWS的专属集群列表,选择某一个正常集群,点击登陆按钮会跳转到SQL编辑器界面,并且弹出创建数据源窗口,输入对应的用户名和密码(已经创建过就无需再创建),也可以在数据仓库面板选择一个集群直接点击登陆。 提示:如果没有SQL编辑器菜单可能是需要先打开白名单配置,找对应的oncall去处理即可。如果希望直接用IAM账号登录数据仓库,那么前提是当前用户必须是IAM子账号,且用户拥有DWS Database Access权限。对于集群版本也有要求,集群版本必须得是8.1.3.331(包含)~ 8.2.0(不包含)、8.2.1.100及以上,存算分离集群仅9.1.0及以上集群版本支持。如果想对数据库用户赋权可以到DWS专属集群-》集群详情-》用户管理 下对数据库用户进行赋权或者取消权限,也可以新增或者删除用户。
  • [技术干货] 缓存占用差异很大
    disk cache 是否会自动淘汰?为什么我的磁盘水位一直维持在配置的最高点,不下降?会。目前缓存占用差异很大策略是达到磁盘使用上限(参数可控制,默认主备盘总空间的50%)、或当前磁盘使用率达到80%才会开始淘汰。但淘汰不会实际删除数据,只是将缓存的磁盘位置标记为空,后面的新缓存写入时会覆盖老缓存。所以即使发生淘汰,磁盘占用空间也不会下降,不会影响实际使用。为什么我 drop 了表,obs也显示表文件已删除,但是我的 disk cache 实际存储的数据量没有下降?drop 表数据不会进行 disk cache 缓存的删除,已经不存在的表的缓存会随着时间的推移,通过 disk cache 的内部 LRU 逻辑淘汰(删除),不影响实际使用。为什么我各个节点之间的缓存占用差异很大?各个节点之间的节点缓存占用是无法保证在相邻水位的,这是单机缓存天然的限制,只要对查询延迟没有影响就行。占用差异受很多因素影响:不同实例加入集群的时间先后;不同vw的表数量差异;表数据的分布方式,以及业务实际访问的数据,可能某个业务访问的数据都在一个节点上;不同节点vacuum full的时间差异,vacuum full会导致该表在缓存中占用的空间double,需要随着时间的推移,通过 disk cache 的内部 LRU 逻辑淘汰无需缓存。
  • [技术干货] 空间远大于我实际的数据量
    非频繁更新实时表,主要做数据导入与查询业务,可以根据客户业务设置合理的TTL时间。比如客户业务会频繁访问最近半天的数据,则可以设置TTL时间为0.5天。频繁更新实时表,upsert业务比较频繁,可以根据需要做upsert的时间范围给表增加TTL时间,提升upsert操作的性能。设置过期时间时也根据客户具体的业务确定,如果主要对近两天导入的数据进行upsert,可将过期时间设置为2天。为什么我通过du、ls命令看到的 disk cache 目录占用的空间远大于我实际的数据量?disk cache 的磁盘占用空间代表的是历史上的最高水位,和当前实际缓存的数据量并没有关系,假设导入了100G的数据,之后进行了upsert等业务,数据量变成了200G,然后之后进行了vacuum,数据量变成了100G,那么 disk cache 的磁盘占用空间仍然会保持在最高水位200G,但是 disk cache 内部的实际缓存数据量会是100G。失效数据的去清理需要将整个disk cache用满后触发LRU淘汰策略。
  • [技术干货] 使用 TTL 策略进行缓存
    cache policy选项可以在执⾏create table或者alter table语句时设置成NONE,之后获取表中的数据,所有数据都会被冷缓存。cache policy选项可以在执⾏create table或者alter table语句时设置成ALL,之后获取表中的数据,所有数据都会被热缓存。在建表时,设置相应的表级参数,即可将该表的数据使用 TTL 策略进行缓存。disk_cache_ttl:新导入的数据期望在缓存中保留的时间,参数的类型为interval,最小值为"1 second"、最大值为 “100 years”。备注:修改后的 TTL 值不会对已经在缓存中的数据生效,仅对后续进入缓存的数据有效。如果在建表时没有设置 TTL,用户同样可以通过执行 ALTER 语句来修改表的 TTL 属性。     3.维度表,数据量较小、变动不大,但是访问频繁,可以设置较长的TTL时间,例如1年,避免查询大表数据时被替换出缓存,以确保其数据在一年内都能被快速访问。  
  • [技术干货] 表级缓存策略指定
    HPN(HOT PARTITION NUMBER)cache policy选项可以在执⾏create table或者alter table语句时设置成HPN : N,⽤户需要提供⼀个数字N(N >= -1600 && N <= 1600),之后获取表中的数据,更晚创建的N个分区中的数据会被热缓存,其余分区会被冷缓存。当N等于0时,所有分区中的数据都会被冷缓存。HPN只对V3表中的range分区表和list分区表生效。HPL(HOT PARTITION LIST)cache policy选项可以在执⾏create table或者alter table语句时设置成HPL : , , …,⽤户需要提供意图指定成热分区的分区名,之后获取表中的数据,热分区中的 数据会被热缓存,⽽其余分区中的数据则会被冷缓存。HPL只对V3表中的range分区表和list分区表⽣效。HPL只对V3表中的range分区表和list分区表生效。 
  • [技术干货] 缓存预热
    在存算分离模式下,GaussDB(DWS)支持搭建跨VW集群,各VW间共享数据但不共享缓存。新的VW创建时,其缓存为空,可能影响查询性能。为此,GaussDB(DWS) 提供缓存预热功能,允许用户从远端存储主动拉取数据至本地缓存。该功能支持以下两种模式:表数据预热:预热指定表 A 的数据。warmup信息解读:Read Cache Size : 从磁盘缓存中读取的数据sizeWrite Cache Size : 从OBS读到本地缓存的数据sizeAvg Write Cache time : OBS请求的平均执行时间对于3.0表,由于数据的实际存储位置位于OBS,增强了sql语句级别的对OBS读写请求统计信息的监控,辅助定位特定sql慢。可以通过topsql以及explain performance 查看特定语句的obs读写统计信息。当前云上的集群的磁盘缓存默认是打开的,即对所有v3表的访问都会使用到磁盘缓存。可以通过以下方式检查当前集群的磁盘缓存是否打开:DN上执行"show enable_aio_scheduler; show obs_worker_pool_size";确保enable_aio_scheduler=on, obs_worker_pool_size >=4;CN上执行"show enable_disk_cache",确保enable_disk_cache=on上述两点必须同时满足。
  • [技术干货] 多盘缓存
    对于云上环境,对不同云盘的访问会走不同的网卡,因此不同云盘的带宽是可以叠加的。在有多块云盘(EVS)的情况下,GaussDB(DWS)支持设置多块盘作为缓存的路径,尽可能将 cache 文件分散在不同云盘上以提升缓存访问的性能。为了提升集群正常时主DN的性能并充分利用节点上的磁盘空间,目前会默认使用主备两块硬盘作为当前节点上主DN缓存介质,通过查询以下参数查看相关信息:通过 disk_cache_base_paths 参数查看和增减缓存硬盘路径,举例某个节点上的目录配置,实例名为h10dn1:主DN多盘缓存路径默认如下:路径1:/DWS/data1/h10dn1/primary0/disk_cache路径2:/DWS/data2/h9dn1/primary0_disk_cache备DN多盘缓存路径默认如下:路径:/DWS/data2/h9dn1/secondry/disk_cache备机的多盘缓存路径与当前节点上主DN的缓存路径2在同一块盘上,因此限制备机升主后的磁盘缓存空间最大为1GB,性能对比切换前会有较大劣化,需要尽快修复集群至均衡状态。
  • [技术干货] TTL队列的淘汰
    A0队列可使用的缓存空间固定为1GB, TTL 队列和LRU - 2Q队列共同使用由GUC参数 disk_cache_max_size 设置的缓存空间,初始状态时缓存空间都给LRU - 2Q使用,在后续访问到设置TTL属性的数据或者TTL中有大量数据过期时,会动态调整TTL队列与LRU - 2Q队列的比例关系,以充分利用缓存空间,TTL所使用缓存空间的最大比例不超过 disk_cache_ttl_max_ratio。TTL过期淘汰当有新的数据进入TTL队列时,会将部分已经过期的数据淘汰至LRU - 2Q队列。后台线程会定期清理TTL中已过期的数据,并淘汰至LRU - 2Q队列。TTL自身LRU淘汰当TTL空间使用达到上限,且没有过期的数据时,会触发自身的LRU淘汰策略,被淘汰出去的数据会进入LRU - 2Q队列。TTL主动淘汰当用户删除设置了过期时间的表数据时,后台线程会定期清理TTL中无效的数据。当有新的数据插入且当前LRU空间使用达到上限,会触发自身的LRU淘汰策略,被淘汰出去的数据会被清除缓存。当TTL队列空间不足,但未到达上限,会抢占LRU - 2Q队列的空间。如果LRU - 2Q的空间已满,也会触发自身的LRU淘汰。LRU - 2Q主动淘汰当用户删除设置了过期时间的表数据时,后台线程会定期清理LRU - 2Q中无效的数据。
  • [技术干货] TTL 策略
    TTL 策略确保新导入的数据在缓存中保留一段时间不被淘汰。在这段时间内,数据具有最高优先级,且所有 TTL 数据之间地位平等,不会因为某些数据即将过期而被提前淘汰。当TTL缓存空间不足时,会尝试抢占LRU队列的空间,以确保 TTL 数据能够被写入,TTL队列最大可使用的空间由guc参数disk_cache_ttl_max_ratio 控制,默认值是0.5,即整个缓存空间的一半。当TTL队列的缓存空间到达上限后,如果仍然有新的数据要进入TTL队列,此时会触发TTL队列自身的LRU淘汰,被淘汰的数据将进入到LRU空间中。应用场景:TTL 策略特别适用于希望在本地持久化的小规模数据表。对于常驻表,可以设置较长的 TTL 值来保护其数据;对于实时表,可以根据热数据的活跃时间设定相应的 TTL 值。GaussDB(DWS) 采用基于 LRU 的多队列策略,根据 TTL 属性及冷热属性将数据分为三类,分别置于 TTL 队列、LRU - 2Q队列、A0 队列中。设置了 TTL 属性的热数据被放置到 TTL 队列,没有设置 TTL 属性的热数据被放置到 LRU - 2Q队列,冷数据都放置到A0队列中。在数据读取和写入过程中,GaussDB(DWS) 会地选择填充和读取的队列,以最大化缓存利用率。 
  • [技术干货] 多队列LRU
    云计算时代下的存算分离架构将计算和存储解耦,存、算、元数据分离成为趋势,将大量用户数据存放在云端存储。在此背景下,需要频繁地同OBS云端存储进行读写交互,为了尽可能的提升云上数据的处理速度,GaussDB(DWS)通过利用本地硬盘上的缓存来加速数据访问,并采用了一种先进的多队列 LRU(Least Recently Used)策略来高效管理缓存空间。针对跨VW的应用场景,DWS 还提供了缓存预热功能,以便在弹性VW建立时,能够迅速加载特定数据(如表或分区)到缓存中,从而提升查询性能。LRU 通过维护一个数据访问队列来管理缓存。当数据被访问时,该数据会被移动到队列的前端。新加入缓存的数据同样会被置于队列前端,以防止其过早被淘汰。当缓存空间达到上限时,队列尾部的数据将优先被移除。GaussDB(DWS) 通过引入LRU-2Q算法,优化了LRU的缓存污染问题,确保了核心业务的热数据不会因为访问大量历史数据而被冲刷出缓存。
总条数:2552 到第
上滑加载中