咨询一下,智能媒体管理中元数据管理如果跟boss bucket绑定后,如果bucket里的文件删除?
咨询一下,智能媒体管理中元数据管理如果跟boss bucket绑定后,如果bucket里的文件删除了,数据集里的索引内容还在吗?
请教下Hologres中holo或者dataworks如何做主数据管理,有相关文档么?
请教下Hologres中holo或者dataworks如何做主数据管理,有相关文档么?
能否实现多个表单入口,添加到同一个数据管理中
我想实现的功能如下: 以多个表单页面,区分外部登陆人群。(表单内加入隐藏文本用以区分不同入口) 多个表单中除入口区分外,其他表单需求皆一致, 填写完成后,附带隐藏区分文本,汇总入同一个数据管理页面中。
阿里云DataWorks的元数据管理的数据库表这一块,有没有二方包可以用,我要在ack集群自己启动?
阿里云DataWorks的元数据管理的数据库表这一块,有没有二方包可以用,我要在ack集群自己启动的spark里面访问它,当hive元数据库用?
你用ECS都做过什么事情?哪件事最让你印象深刻?
ECS是一种基于云服务器的计算服务,可以提供可靠、安全、灵活和高性能的云计算能力,帮助用户在云端构建和扩展业务。还可以根据用户的需求,提供各种类型的云服务器,包括通用型、计算型、内存型、高IO型等,并且支持多种操作系统和数据管理平台。 那么你用ECS都做过什么事情?哪件最让你印象深刻?
你会选择云原生数据库吗?
阿里云数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。如今,阿里云数据库已为超过10万客户服务,超过40万数据库实例迁移至阿里云上。
如今,云原生已经成为阿里云的一大标签,最早布局云原生技术,同时也打造出了丰富的云原生产品家族。其中云原生数据库尤为突出,目前已经进入云原生数据库2.0时代。
阿里云瑶池数据库峰会将于3月24日于北京举办,本次峰会集结了国内外产学研大咖,凝聚知名数据库技术领袖、资深行业专家、生态合作伙伴和媒体同仁,共论云原生一站式数据管理与服务的发展之路。届时会有线上直播同步进行,欢迎大家一同收看直播点击观看 也欢迎开发者一同参与到数据库相关讨论中来,一起联动碰撞思维!
本期话题:
你用过哪些云原生数据库?使用相比于传统数据库,你从实际使用体验出发,觉得云原生数据库有哪些优势呢?
你知道什么是云原生数据库的serverless能力吗?你认为云原生数据库serverless能有效帮你的业务“降本增效”吗?
你认为在哪些场景下云原生数据库会发挥更大的作用?欢迎结合实际业务进行分享。
本期奖品:
截止2023年3月31日24时,本次话题将选取3名高质量的回答,奖励社区定制卫衣*1。
注:话题讨论要求原创,如有参考,一律注明出处,否则视为抄袭不予发奖。获奖名单将于3个工作日内公布,礼品将于7个工作日内发放,节假日顺延。
本期话题截止3月31日24时,共收获70条回复。看到大家的精彩讨论小编想说:感谢大家贡献的高价值回答!本次奖品获奖名单如下(公示期3天):
牧羊吖、三掌柜666、上进小菜猪
关于EventTransactionBuffer与MemoryEventStoreWithBuffe
我现在的理解 EventTransactionBuffer sink将event分发给EventTransactionBuffer,如果收集到一个完整的transaction,或者达到了buffer的size上限就会触发flush,将缓存数据通过callback经过filter等操作以后发送到MemoryEventStoreWithBuffer.
MemoryEventStoreWithBuffer 接收到一个List(应该就是刚刚发过来的list事务),检查如果空位空间足够,就遍历list中的数据,逐条加入entries中。
每一次get数据的时候,是根据传入的batchSize来拿的,拿完以后会计算消息的PositionRange(这次get的头尾LogPosition),会set可被ack的点为这段消息中的最后一个TRANSACTIONBEGIN或者TRANSACTIONEND。这个ack会在元数据管理updateCursor时传进去,为了让cursor中总是记录的事务的开始或者结束。
我的疑问 现在我们在开发的东西,是希望以Transaction来作为单位来将消息发给下游的(如果过大的transaction会分割成多个transaction包,里面记录一个布尔值表示是否是事务结束包),现在主要矛盾是MemoryEventStoreWithBuffer里面存储的粒度是entry,所以根据batchSIze来拿的话拿出去可能同个事务中数据是会被分2次拿到的。
如果是从MemoryEventStoreWithBuffer拿出数据之后,再嵌套一个类似EventTransactionBuffer的缓存, ack的时候也还要保留原来的batchId来ack。
目前觉得可以去实现一个自己的MemoryTransactionStoreWithBuffer,里面的缓存的粒度用transaction包,这样每次get出来都是以transaction包为单位的形式,之后可以继承CanalInstanceWithManager覆盖里面的initEventStore方法,将MemoryEventStoreWithBuffer替换为自己实现的MemoryTransactionStoreWithBuffer。
想请教一下当时canal设计的考虑,以后有没有考虑提供按transaction包为单位的put,get,ack。然后我目前的想法是不是合理,不知道我上面的表述是不是够清楚,望回复。
原提问者GitHub用户zwangbo
[BUG] 如果TSDB已经存在了table schema cache,为什么还要继续进行apply
我发现在CREATE TABLE IF NOT EXIST xxx_table 这样的SQL执行会导致字段解析乱序;我分析到代码如果已经存在的表,执行这样的SQL会更新table cache schema,是不是这样原因导致的?
if (!isSeek && !isDml) { // 使用新的表结构元数据管理方式 EntryPosition position = createPosition(event.getHeader()); tableMetaCache.apply(position, event.getDbName(), queryString, null); } /* 传递参数position,是尝试根据dump到不同位点位置的binlog使用不同的table schema进行解析,这里的逻辑是没有实现吗? */ public boolean apply(EntryPosition position, String schema, String ddl, String extra) { tableMetas.clear(); synchronized (this) { if (StringUtils.isNotEmpty(schema)) { repository.setDefaultSchema(schema); }
try {
// druid暂时flush privileges语法解析有问题
if (!StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "flush")
&& !StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "grant")
&& !StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "revoke")
&& !StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "create user")
&& !StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "alter user")
&& !StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "drop user")
&& !StringUtils.startsWithIgnoreCase(StringUtils.trim(ddl), "create database")) {
repository.console(ddl);
}
} catch (Throwable e) {
logger.warn("parse faield : " + ddl, e);
}
}
// TableMeta meta = find("tddl5_00", "ab");
// if (meta != null) {
// repository.setDefaultSchema("tddl5_00");
// System.out.println(repository.console("show create table tddl5_00.ab"));
// System.out.println(repository.console("show columns from tddl5_00.ab"));
// }
return true;
}
public void setDefaultSchema(String name) { if (name == null) { this.defaultSchema = null; } else { String normalizedName = SQLUtils.normalize(name).toLowerCase(); Schema defaultSchema = (Schema)this.schemas.get(normalizedName); if (defaultSchema != null) { this.defaultSchema = defaultSchema; } else if (this.defaultSchema != null && this.defaultSchema.getName() == null) { this.defaultSchema.setName(name); this.schemas.put(normalizedName, this.defaultSchema); } else { defaultSchema = new Schema(this); defaultSchema.setName(name); this.schemas.put(normalizedName, defaultSchema); this.defaultSchema = defaultSchema; } } }
原提问者GitHub用户tsywkGo
关联表单的数据管理页面没有筛选选项
我想问一下为什么两个表单数据,进行关联表单的时候,一个有查询功能,一个没有查询功能呢,数据管理也没有排序和筛选 销售订单页面也有权限的设置 选择销售订单这里是可以的 选择采购订单这边就没有
数据管理DMS找不到Lindorm实例,怎么办?
数据管理DMS找不到Lindorm实例,怎么办?