随笔分类 - MiddleWare
摘要:1. 简介 在上篇博文中介绍了如何使用calcite进行sql验证, 但是真正在实际生产环境中我们可能需要使用到 用户自定义函数(UDF): 通过代码实现对应的函数逻辑并注册给calcite sql验证: 将UDF信息注册给calcite, SqlValidator.validator验证阶段即可通
阅读全文
摘要:1. 简介 在上篇博文中介绍了如何使用calcite进行sql验证, 但是真正在实际生产环境中我们可能需要使用到 用户自定义函数(UDF): 通过代码实现对应的函数逻辑并注册给calcite sql验证: 将UDF信息注册给calcite, SqlValidator.validator验证阶段即可通
阅读全文
摘要:1. 简介 我们在平时的开发中可能会遇到需要验证一下sql是否正确,也就是需要check一下sql。 判断sql是否正确一般包含一下几点: 1. sql中使用的列是否存在 2. sql语法是否正确 3. sql中使用到的操作符/函数是否存在,有没有正确的使用 我们可以用以下的sql示例来探究一下使用
阅读全文
摘要:1. 简介 我们在前面的文章中提到了calcite支持csv和json文件的数据源适配, 其实就是将文件解析成表然后以文件夹为schema, 然后将生成的schema注册到RootSehema(RootSchema是所有数据源schema的parent,多个不同数据源schema可以挂在同一个Roo
阅读全文
摘要:1. 简介 我们在前面的文章提到了calcite可以支持文件系统的数据源适配, 其实官方已经提供了相应的能力, 其支持csv和json的查询适配, 废话不多说, 直接展示. 2. Maven <!-- calcite文件系统支持 --> <dependency> <groupId>org.apach
阅读全文
摘要:1. 简介 我们平时开发中可能会遇到这样的问题,现在分布式环境下每个服务对应的数据库都是独立的,每个应用使用的都是自己的数据库,或者项目现场我们的服务需要使用第三方的提供的数据,但是第三方直接把数据库信息扔给我们,让我们自己去查询,像这种情况我们一般就两种做法 在我们的服务中添加一个数据源然后添加持
阅读全文
摘要:1. 简介 Calcite 是一款来自 Apache 的开源动态数据管理框架,核心功能是提供 SQL 查询解析、优化及执行等基础能力,以灵活支持多种数据源,广泛应用于各类数据处理系统。以下从其功能特性、应用场景、优势三方面简单概述: 功能特性 SQL 解析:支持多种 SQL 方言,如标准 SQL 以
阅读全文
摘要:## 1. 简介 **Kafka(Apache Kafka)** 是一种分布式流数据平台,最初由LinkedIn开发,并于后来捐赠给Apache软件基金会,成为了一个Apache顶级项目。它被设计用于处理大规模、实时的数据流,并为构建高吞吐量、容错性强的数据流应用程序提供支持。Kafka的特点使得它
阅读全文
摘要:1. 简介 Canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费功能。 工作原理 Mysql主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以
阅读全文
摘要:1. 简介 Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。 Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。 Ingress 公开了从集群外部到集群内Service的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资
阅读全文
摘要:1. 简介 Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中。 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。 由于创建 Secret 可以独立于使用它们的 Pod, 因此在创建、查看和编辑 Pod 的工作流程中暴露
阅读全文
摘要:1. 简介 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap 将您的环境配置信息和容器镜像解耦,便于应用配置的修改。 注意:ConfigMap 并不提供保密或者加密功能。 如
阅读全文
摘要:1. 简介 StorageClass 为管理员提供了描述存储 "类" 的方法。 通过StorageClass的定义,管理员可以将存储资源定义为某种类别(Class),正如存储设备对于自身的配置描述(Profile),例如 "快速存储" "慢速存储" "有数据冗余" "无数据冗余"等。用户根据Stor
阅读全文
摘要:1. 简介 持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先供应,或者 使用存储类(Storage Class)来动态供应。 持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样,也是使用 卷插件来实现的,只是它们拥有独立于任何使用
阅读全文
摘要:1. 简介 我们都知道 Container 中的文件在磁盘上是临时存放的,这给 Container 中运行的较重要的应用 程序带来一些问题。 是当容器崩溃时文件丢失。(kubelet 会重新启动容器, 但容器会以干净的状态重启) 在同一 Pod 中运行多个容器如何共享文件 Kubernetes 卷(
阅读全文
摘要:1. 简介 kubernets service 是将运行一组pods上的应用程序公开为网络服务的抽象方法。 有了 kubernets service,你就无需修改应用程序即可使用服务发现机制,kubernets 为 pods 提供自己的ip地址,并为一组pod提供相同的DNS名,并且可以在它们之间进
阅读全文
摘要:1. 简介 DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。 当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 DaemonSet 的一些典型用法: 在每个节点上运行
阅读全文
摘要:1. 简介 StatefulSet 是用来管理有状态应用的工作负载Api对象。 StatefulSet 用来管理某 Pod 集合的部署和扩缩, 并为这些 Pod 提供持久存储和持久标识符。 和 Deployment 类似, StatefulSet 管理基于相同容器规约的一组 Pod。 但和 Depl
阅读全文
摘要:1. 简介 一个 Deployment 为 Pods 和 ReplicaSets 提供声明式的更新能力。 用户负责描述 Deployment 中的 目标状态,而 Deployment 控制器(Controller)以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新
阅读全文
摘要:1. 简介 Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod 是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用
阅读全文