流式引入和架构更改

背景

群集节点会缓存通过流式引入接收数据的数据库的架构。 此过程会优化群集资源的性能和利用率,但可能会在架构更改时导致传播延迟。

架构更改的示例如下:

  • 创建和删除数据库和表
  • 添加、删除、重新键入或重命名表中的列
  • 添加或删除预先创建的引入映射
  • 添加、删除或更改策略

如果架构更改和流式引入流不协调,则某些流式引入请求可能会失败。 失败可能包括与架构相关的错误,或将不完整或失真的数据插入到表中。 在实现自定义引入应用程序时,强烈建议通过在有限的时间内执行重试操作或通过使用排队引入方法从失败的请求中重新路由数据来处理与架构相关的故障。

清除架构缓存

通过在群集节点上显式清除架构缓存来减小传播延迟的影响。 使用清除用于流式引入的架构缓存管理命令之一清除架构缓存。 如果流式引入流和架构更改协调,则可以完全消除故障及其关联的数据失真。

协调流示例:

  1. 暂停流式引入。
  2. 等待所有未处理的流式引入请求完成>
  3. 进行架构更改。
  4. 发出一个或多个 .clear cache streaming ingestion 架构命令。
    • 重复上述操作直到成功,此时命令输出中的所有行都指示成功
  5. 恢复流式引入。

注意

经常使用清除缓存流式引入架构命令可能会对流式引入的性能产生不利影响。