暂无图片
TDSQL 分布式数据库不支持call 存储过程
我来答
分享
Amy_liu923
2024-05-28
TDSQL 分布式数据库不支持call 存储过程

TDSQL 分布式数据库,我需要建3万张单表用于测试,表复制information_schema.tables即可。 我创建了存储过程,用于批量建表。 但是 proxy 不支持call 存储过程。 于是我我用透传到第一个分片的方式,/*sets: 第一个分片ID*/ call createtable(); 这样存储过程调用成功了,表也都创建了。但是问题也来了,只能用/*sets :第一个分片id*/ select * from table_name; 才能查到。如果 直接查select * from table_name;  新建的表提示不存在,查不到。 /*proxy*/ show table without shardkey  也查不到这些表。  各位老师,这个如何解决,谢谢。

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
吾亦可往

以下是一些可能的解决思路:


  1. 检查路由配置:确保分布式数据库的路由规则设置正确,可能需要重新审视和调整分片策略以及相关配置,以确保能正确路由到所有创建的表。
  2. 确认存储过程的执行范围:虽然通过特定分片调用成功了,但要确认是否所有分片都正确执行了建表操作,可能需要进一步排查存储过程在各个分片上的执行情况。
  3. 数据同步问题:考虑是否存在数据同步延迟或不一致的情况,检查数据库的数据同步机制是否正常工作。
  4. 与数据库技术支持沟通:联系 TDSQL 的技术支持团队,详细描述遇到的问题,获取他们专业的建议和解决方案。
  5. 重新设计建表方式:也许当前的建表方式存在一些局限性,可以考虑其他更合适的建表策略或方法,避免出现这种不一致的情况。
暂无图片 评论
暂无图片 有用 1
打赏 0
lianR

这个问题的原因在于,你通过存储过程在一个分片上创建了大量的表,但是这些表的元数据并没有同步到TDSQL的元数据管理模块,因此在其他分片上是无法查询到这些表的。

解决这个问题的方法有两种:
1.  通过TDSQL的API或者管理控制台手动同步元数据。这种方法比较简单,但是需要手动操作,如果表的数量非常大,可能会比较麻烦。
2.  修改你的存储过程,让它在每个分片上都创建表。这种方法比较复杂,需要你对存储过程进行修改,但是可以避免手动同步元数据的麻烦。

总的来说,如果你只是为了测试而创建大量的表,我建议你使用第一种方法,因为它更简单。如果你在生产环境中需要创建大量的表,我建议你使用第二种方法,因为它可以避免手动同步元数据的麻烦。

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
数据库的发展和腾讯云分析型数据库TDSQL-A演进,有没有大佬知道具体的?
回答 1
1858年,美国企业家菲尔德用4艘巨轮将上万吨电报铜缆铺设到大西洋底,实现了人类第一次洲际通信,当时的传输速率每秒不到1个比特。到了2017年,跨大西洋高速海底光缆成功铺设,每秒可以稳定地传输160T
客户如果让我们做迁移到tdsql,对于客户现在的业务系统代码,改动工作量有哪些?
回答 3
这个取决于客户用的什么数据库,比方说客户使用的oracle,它里面可能遇到一些存储过程,和高级特性的话,这样改动还是蛮大的。客户上迁移的在实际迁移过程中,我们会有poc团队帮着客户一起来完成这个事情
关于TDsql数据库的问题
回答 1
是否能满足3年内历史页面快速查询。分区表是将数据分散到不同的物理存储中,查询时只需要查找与查询条件匹配的分区,从而减少查询的数据量,提高查询速度。因此,按月分区表可以满足3年内的历史页面快速查询的需求
Redis和tdsql数据异地同步(迁移)有没有案例?
回答 1
Redis篇日常听到的Redis有两个概念,支持Redis协议的ckv和腾讯云Redis。ckv是腾讯自主研发的NoSQL系统,上云之前的主要keyvalue存储选型。但是目前已经不在云上售卖了。腾讯
Tdsql支持分布式事务吗 ?
回答 2
Tdsql支持分布式事务,tdsql是面向金融领域的一款产品,支持分布式事务,基于XA协议的两阶段提交,在此基础上做了更深层次上的逻辑处理。
tdsql弹性伸缩只是针对sql引擎吧?数据节点伸缩成本太高了
回答 1
数据节点也支持扩容;目前扩容上如果要达到数据均衡的话确实需要248这样去添加分片; 
tdsql的set是通过cgroup来隔离cpu和内存的吗?
回答 1
对的
TDSQL节点挂了之后,再次请求过来 直接读缓存吗?
回答 2
节点挂了后进行主从切换,业务连接重连请求后,路由到新的主节点上;schedler通过zk推送更新路由信息给proxy;
tdsql 备份有几种方式?
回答 1
tdsql支持物理备份,逻辑备份2种方式。物理备份又可以支持全量和增量备份,tdsqlbinlog是实时备份的,可以恢复到有备份的时间范围内任意时间点
tdsql中处理复杂不能下推的SQl时,遇到大数据量时 proxy的内存如何管理和控制?
回答 1
proxy会把数据写入临时表;这种场景使用时要尽量避免
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~