首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一次Impala upsert kudu执行缓慢问题排查总结

    问题背景 BI同学会用Impala在Kudu表上跑一些ETL任务,最近,BI同学反馈一个Kudu表的ETL任务突然变慢,执行时间从原来的不到1分钟到现在的7分钟。...3.2.0-cdh6.2.0 RELEASE Kudu 1.9.0-cdh6.2.0 我们主要从SQL语句执行的操作了解该SQL的复杂度,并阅读该SQL的profile信息一步步进行排查,找出产生该问题的原因...以下是排查步骤: 1、该ETL任务的SQL语句执行的是一个UPSERT...SELECT操作,大体结构如下: UPSERT INTO TABLE rtl_ods_test.a SELECT ......Kudu是通过主键来判断记录是否重复的,它实现upsert操作的原理主要是通过判断插入的记录是否存在主键冲突来决定是插入还是更新,当出现主键冲突时进行更新操作,若无冲突则进行插入操作。...我们将这些信息反馈给BI同学,他们查了SQL后发现这条SQL返回的结果大部分都是重复的,最终导致将结果集upsert进Kudu时,花费了很长时间。

    4K10

    PostgreSQL解决数据膨胀问题pg_repack

    Hi~朋友,关注置顶防止错过消息 pg自带工具 为了解决数据膨胀,pg自身提供了vacuum工具,vacuum分为普通vacuum和vacuum full。...pg_repack安装 首先你需要准备一台可以连接数据库的服务器,在服务器上安装repack工具包,这个地方安装的repack工具包需要和数据库的插件对应,如果对应不正确,在执行pg_repack命令的时候会报错...pg_repack执行 pg_repack -h 数据库地址 -p 数据库端口号 --jobs 2--table 表名 --no-order -d 数据库名称 -U 数据库用户 -k 上面的命令是我在实际执行...pg_repack的时候操作,具体参数的含义大家可以参考官方文档。...删除原始表 其他的大表重构方案 除了pgrepack,PostgreSQL社区还有另一款pgsqueeze工具用来处理大表的数据膨胀问题,由于我这里没有真正操作过,就不在这里详细描述了。

    1.2K30

    PostgreSQL 管理:使用与优化 PostgreSQL 的技巧

    RETURNING获取插入/更新后的数据展开代码语言:SQLAI代码解释INSERTINTOusers(name)VALUES('Tom')RETURNINGid;使用展开代码语言:TXTAI代码解释UPSERT...替代JSON(支持索引)使用PARTITION分区大表展开代码语言:SQLAI代码解释CREATETABLElogs(idserial,created_atdate)PARTITIONBYRANGE(created_at...调整WAL大小wal_buffers=16MB3.3连接池优化推荐使用:PgBouncer(轻量、适合OLTP)Pgpool-II(负载均衡、读写分离)4.PostgreSQL备份与恢复4.1逻辑备份(pg_dump...)适合小型数据库、迁移、结构备份展开代码语言:BashAI代码解释pg_dump-Upostgresmydb>backup.sql恢复:展开代码语言:BashAI代码解释psql-Upostgresmydb...pg_basebackup)适合大规模数据库、主从复制展开代码语言:BashAI代码解释pg_basebackup-D/data/backup-Fp-Xs-P-Urepl4.3PITR

    37510

    使用pg_stat_statement监控pgsql遇到的问题

    pg_stat_statements是PG中监控数据库活动的重要插件,通过它可以获得SQL的统计信息,例如该SQL被调用了多少次,返回了多少记录,在读写数据上花了多少时间,这个对于监控数据库很有帮助。...默认情况下,这个插件可以统计5000个SQL,如果不够可以调整pg_stat_statements.max这个GUC。...一般情况下,可以通过源码安装该插件: 1、 先编译安装pgsql 2、在pg源码的目录下执行 make install -C contrib/pg_stat_statements 3、修改pg...该语句会在当前的数据库中创建一个视图pg_stat_statements,这个视图中包含了很多有用的监控信息.简单的说来,这个插件会在PG数据库初始化的时候从共享内存中申请一块区域,这块区域主要是用作一个...而且考虑到pg_stat_statements的容量有限,最好还是建立一个非临时表。

    1.5K50

    # Ruby基于Rails框架实现多角色权限管理与数据分页查询完整实战代码案例

    Ruby基于Rails框架实现多角色权限管理与数据分页查询完整实战代码案例一、项目概述本案例基于RubyonRails7开发,搭建一套后台管理系统核心能力:多角色RBAC权限控制+列表分页查询功能。...二、环境依赖Ruby3.2.2Rails7.1.0数据库:PostgreSQL14核心Gem依赖展开代码语言:RubyAI代码解释#Gemfilegem'devise'#用户登录认证gem'cancancan...'#RBAC权限控制gem'kaminari'#分页插件gem'pg'#数据库驱动gem'bcrypt'执行安装命令:展开代码语言:BashAI代码解释bundleinstallrailsdb:create...ApplicationControllerload_and_authorize_resource#CanCan自动校验权限includePaginationHelper#分页订单列表defindex@orders=paginate_data(Order.order(created_at

    11200

    【踩坑实录】there is no unique or exclusion constraint matching the ON CONFLICT specification

    目录 一、背景 二、定位问题 三、解决方案 四、后续坑 五、总结 ---- 一、背景 使用datax postgresqlwriter组件upsert数据时报错 error:there is no unique...CONFLICT specification datax  自定义json postgresqlwriter中json新增writeMode "writeMode": "update (id)" 二、定位问题...原来是因为pg5.0以上的版本的新特性,根据约束,存在才更新,不存在则插入,而且字段属性必须是unique,否则还会报错 三、解决方案 --为pg目标表添加约束 ALTER TABLE public.pg_table_name...ADD constraint "upsert_pkey" unique (id); 注意:unique中字段可以为多个 四、后续坑 本来以为到这里已经解决了,结果又发现了新坑。。。...加完约束后在执行居然又报错 null value in column "col_name" violates not-null constraint 我竟无语凝噎,然后又去将pg表所有字段给了默认值,才成功了

    2K20

    这个问题不解决, PG在AI赛道将凉凉

    这个问题不解决, PG在AI赛道将凉凉 给数据库服务器加上GPU卡, 把推理任务放数据库里, 让算力靠近数据, 减少数据移动带来的网络开销、序列化和反序列化带来的CPU与内存开销等. 最终提升效率!...这样基于 PG 打造 AI 原生数据库, 是不是很美好? 不过我要泼一盆冷水, 以上需求很美好, 但是PostgreSQL有个“死穴”, 这个问题不解决, 以上都是扯淡! 巨坑就在前面等着你....PostgreSQL 不适合“长期训练任务”和“更新/删除偏多的OLTP业务”并存 长事务往往会导致PostgreSQL数据库膨胀, 原因是vacuum进程只能回收PG实例中最老事务之前产生的dead...如果PG不解决这个死穴, 别谈AI 原生数据库了! UNDO 存储引擎迫在眉睫!

    8110

    PostgreSQL “改个字段就锁表”黑历史--DDL操作中的问题解决了吗?

    最近有人在问一个问题,PostgreSQL这么好,那么好,就是上手不友好。这话从哪里来的,其实就是从DDL来的,修改字段类型 int -- bigint 重建表。...不过随着数据库的版本的更新一些老的PostgreSQL的问题其实已经解决了很多。 今天我就拿PG18来说说PG在这方面的进步和已经解决的问题。...那些原来的问题已经解决,在操作中可以不进行rewrite。...问题1 添加自动带有默认值 这个问题在早期的PG11之前的版本存在,后面从PG11后就解决了这个问题, 我们在PG18上对这个语句进行验证,在验证前先进行建表和冲入数据的工作 postgres=# create...amount numeric(12,2), postgres(# buyer_name varchar(100), postgres(# memo text, postgres(# created_at

    19610
    领券