曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?

这篇具有很好参考价值的文章主要介绍了曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?

Catalog(目录)提供了关于数据库、表格和访问数据所需的信息的元数据,以及统一的 API 来管理元数据,验证连接,让元数据对 Sources(数据源)、Sinks(数据汇)和 Web 可访问。

Catalog 让用户能够引用其数据系统中的现有元数据,并自动映射到 SeaTunnel 的对应元数据。总之,Catalog 大大简化了使用用户现有系统开始使用 SeaTunnel 的步骤,并显著增强了用户体验。

Catalog 功能的重要性

目前,许多现有功能都是基于 Catalog 实现的,例如 CDC(变更数据捕获)多表同步功能,我们使用 Catalog 获取表格和字段列表。

Apache SeaTunnel 目前正在设计一个叫做 SaveMode 的功能,它是由连接器实现的,用于支持目标表中现有表格结构和数据的处理。这些功能也是基于 Catalog 实现的。

Catalog 是如何设计的?如何实现一个新的 Catalog?以下是详细介绍。

Catalog API

初始化操作

注意:目录名称目前没有被使用,预计会提供给 Web 后端进行保存和查询。

Java
public interface CatalogFactory extends Factory { String factoryIdentifier(); OptionRule optionRule(); Catalog createCatalog(String catalogName, ReadonlyConfig options); } public interface Catalog extends AutoCloseable { void open() throws CatalogException; void close() throws CatalogException; }

数据库操作

java
public interface Catalog extends AutoCloseable { // -------------------------------------------------------------------------------------------- // 数据库 // -------------------------------------------------------------------------------------------- String getDefaultDatabase() throws CatalogException; boolean databaseExists(String databaseName) throws CatalogException; List<String> listDatabases() throws CatalogException; void createDatabase(String databaseName, boolean ignoreIfExists) throws DatabaseAlreadyExistException, CatalogException; void dropDatabase(String databaseName, boolean ignoreIfNotExists) throws DatabaseNotExistException, CatalogException; }

表格操作

java
public interface Catalog extends AutoCloseable { // -------------------------------------------------------------------------------------------- // 表格 // -------------------------------------------------------------------------------------------- List<String> listTables(String databaseName) throws CatalogException, DatabaseNotExistException; boolean tableExists(TablePath tablePath) throws CatalogException; CatalogTable getTable(TablePath tablePath) throws CatalogException, TableNotExistException; void createTable(TablePath tablePath, CatalogTable table, boolean ignoreIfExists) throws TableAlreadyExistException, DatabaseNotExistException, CatalogException; void dropTable(TablePath tablePath, boolean ignoreIfNotExists) throws TableNotExistException, CatalogException; }

这里是一个已经实现的示例。

MySQL Catalog

MySQL Catalog 的使用方式:

曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?

  • username [String] 连接到数据库服务器时要使用的数据库名称。
  • password [String] 连接到数据库服务器时要使用的密码。
  • base-url [String] URL 必须包含数据库,例如 "jdbc:mysql://localhost:5432/db" 或 "jdbc:mysql://localhost:5432/db?useSSL=true"。
  • table-names [List] 要捕获的数据库表格名称列表。表格名称需要包括数据库名称,例如:database_name.table_name。
  • database-pattern [String] 要捕获的数据库名称的正则表达式。
  • table-pattern [String] 要捕获的数据库表格名称的正则表达式。表格名称需要包括数据库名称,例如:database_.\.table_.

配置文件配置

conf
[source/sink] { [connector-factory-id] { catalog { factory = "MySQL" username = "test" password = "123456" base-url = "jdbc:mysql://localhost:5432/db" table-names = [ "db.table" ] } } }

如何使用 Catalog

对于支持 Catalog 的连接器,我们将打开一个 Catalog 参数来配置所使用的 Catalog:

示例

sql
env { "job.mode"=STREAMING "job.name"="cdc_mysql_to_mysql" "checkpoint.interval"="2000" "custom_parameters"="" } source { MySQL-CDC { parallelism = 1 catalog { factory = "MySQL" # 默认情况下,Catalog 将使用与连接器同名的选项 } username = "mysqluser" password = "mysqlpw" database-names = ["seatunnel-test"] table-pattern = "seatunnel-test\\.orders_\\d+" base-url = "jdbc:mysql://localhost:54508/seatunnel-test" } } sink { jdbc { url = "jdbc:mysql://localhost:4000/test" driver = "com.mysql.cj.jdbc.Driver" catalog { factory = "MySQL" username = "root" password = "" base-url = "jdbc:mysql://localhost:4000/test" table-pattern = "seatunnel-test2\\.orders_\\d+" } user = "root" password = "" query = "insert into sink(age, name) values(?,?)" } }

未来规划

目前,我们只实现了部分 Catalog。未来,我们计划扩大 Catalog 的实现范围,包括更多支持 Catalog 的连接器,这将使更多的连接器支持 SaveMode 和自动表格创建等功能。

Apache SeaTunnel 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台

  • 仓库地址: https://github.com/apache/seatunnel

  • 网址:https://seatunnel.apache.org/

  • Proposal:https://cwiki.apache.org/confluence/display/INCUBATOR/SeaTunnelProposal

  • Apache SeaTunnel 下载地址:https://seatunnel.apache.org/download

衷心欢迎更多人加入!

我们相信,在「Community Over Code」(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!

我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!

  • 提交问题和建议:https://github.com/apache/seatunnel/issues
  • 贡献代码: https://github.com/apache/seatunnel/pulls
  • 订阅社区开发邮件列表 : dev-subscribe@seatunnel.apache.org
  • 开发邮件列表:dev@seatunnel.apache.org
  • 加入 Slack: https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ
  • 关注 Twitter: https://twitter.com/ASFSeaTunnel

本文由 白鲸开源 提供发布支持!文章来源地址https://www.toymoban.com/news/detail-486490.html

到了这里,关于曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Apache SeaTunnel 社区 3 月月报

    各位热爱 SeaTunnel 的小伙伴们,SeaTunnel 社区 3 月月报来啦!这里将记录 SeaTunnel 社区每个月的重要更新,并评选出月度之星,欢迎关注。 感谢以下小伙伴 3 月为 Apache SeaTunnel 做的精彩贡献(排名不分先后): @Carl-Zhou-CN,@ilsl1007,@loveyang1990,@dailai,@liugddx,@CheneyYin,@litiliu,@ShaunWuu,@

    2024年04月11日
    浏览(37)
  • apache seatunnel web 安装部署

    apache-seatunnel-2.3.3-bin.tar.gz apache-seatunnel-web-1.0.0-bin.tar.gz download_datasource.sh 解压文件

    2024年01月18日
    浏览(66)
  • apache seatunnel支持hive jdbc

    上传hive jdbc包HiveJDBC42.jar到seatunel lib安装目录 原因是cloudera 实现了add batch方法 创建seatunnel任务文件mysql2hivejdbc.conf

    2024年02月06日
    浏览(34)
  • Apache Seatunnel本地源码构建编译运行调试

    Apache Seatunnel本地源码构建编译运行调试   本文使用的是windows10-64位专业版的电脑,需要安装环境如下   jdk=1.8 - 64 位的jdk、   使用的是idea自带的maven,最好是安装一个方便源码编译构建,使用idea自带的maven无法执行mvnw,但是可以复制mvnw后面的在idea的maven中的run mave

    2024年01月16日
    浏览(31)
  • 海豚调度任务类型Apache SeaTunnel部署指南

    Apache DolphinScheduler已支持Apache SeaTunnel任务类型,本文介绍了SeaTunnel任务类型如何创建,任务参数,以及任务样例。 SeaTunnel 任务类型,用于创建并执行 SeaTunnel 类型任务。worker 执行该任务的时候,会通过 start-seatunnel-spark.sh 、 start-seatunnel-flink.sh 和 seatunnel.sh 命令解析 config 文件

    2024年04月08日
    浏览(43)
  • 【安装部署】Apache SeaTunnel 和 Web快速安装详解

    由于作者目前接触当前最新版本为2.3.4 但是官方提供的web版本未1.0.0,不兼容2.3.4,因此这里仍然使用2.3.3版本。 可以自定义兼容处理,官方提供了文档:https://mp.weixin.qq.com/s/Al1VmBoOKu2P02sBOTB6DQ 因为大部分用户使用SeaTunnel Web都是基于SeaTunnel-2.3.3 版本做的适配,而最新发布的Sea

    2024年04月16日
    浏览(43)
  • 教程 | 使用 Apache SeaTunnel 同步本地文件到阿里云 OSS

    一直以来,大数据量一直是爆炸性增长,每天几十 TB 的数据增量已经非常常见,但云存储相对来说还是不便宜的。众多云上的大数据用户特别希望可以非常简单快速的将文件移动到更实惠的 S3、OSS 上进行保存,这篇文章就来介绍如何使用 SeaTunnel 来进行到 OSS 的数据同步。

    2024年02月08日
    浏览(49)
  • Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug

    近日,Apache DolphinScheduler 发布了 3.1.8 版本。此版本主要基于 3.1.7 版本进行了 bug 修复,共计修复 16 个 bug, 1 个 doc, 2 个 chore。 其中修复了以下几个较为重要的问题: 修复在构建 SeaTunnel 任务节点的参数时错误的判断条件 修复 SeaTunnel 任务运行模式默认为运行,无法选择空值的

    2024年02月13日
    浏览(46)
  • 使用 Apache SeaTunnel 实现 Kafka Source 解析复杂Json 案例

    版本说明: SeaTunnel:apache-seatunnel-2.3.2-SNAPHOT 引擎说明: Flink:1.16.2 Zeta:官方自带 近些时间,我们正好接手一个数据集成项目,数据上游方是给我们投递到Kafka,我们一开始的技术选型是SpringBoot+Flink对上游数据进行加工处理(下文简称:方案一),由于测试不到位,后来到

    2024年02月17日
    浏览(33)
  • Apache SeaTunnel 2.3.3 版本发布,CDC 支持 Schema Evolution!

    时隔两个月, Apache SeaTunnel 终于迎来大版本更新。此次发布的 2.3.3 版本在功能和性能上均有较大优化改进,其中大家期待已久的 CDC Schema evolution(DDL 变更同步)、主键 Split 拆分、JDBC Sink 自动建表功能、SeaTunnel Zeta 引擎支持 作业配置支持变量替换和传参等都是更新的亮点。

    2024年02月11日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包