主頁 > 資料庫 > 曝光!Apache SeaTunnel Catalog 功能設計為何能大大簡化用戶啟用步驟?

曝光!Apache SeaTunnel Catalog 功能設計為何能大大簡化用戶啟用步驟?

2023-06-17 08:11:12 資料庫

file

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 的使用方式:

file

  • 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
  • 訂閱社區開發郵件串列 : [email protected]
  • 開發郵件串列:[email protected]
  • 加入 Slack: https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ
  • 關注 Twitter: https://twitter.com/ASFSeaTunnel

本文由 白鯨開源 提供發布支持!

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/555416.html

標籤:大數據

上一篇:Committer 迎新!這次是來自阿里云的同學

下一篇:返回列表

標籤雲
其他(161170) Python(38236) JavaScript(25504) Java(18244) C(15237) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7254) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4599) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2436) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) HtmlCss(1968) 功能(1967) Web開發(1951) C++(1941) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • 曝光!Apache SeaTunnel Catalog 功能設計為何能大大簡化用戶啟用

    ![file](https://img2023.cnblogs.com/other/3195851/202306/3195851-20230616175541667-1729991882.jpg) Catalog(目錄)提供了關于資料庫、表格和訪問資料所需的資訊的元資料,以及統一的 API 來管理元 ......

    uj5u.com 2023-06-17 08:11:12 more
  • Committer 迎新!這次是來自阿里云的同學

    ![file](https://img2023.cnblogs.com/other/2685289/202306/2685289-20230616173226789-2009691483.jpg) > 截至今天,Apache DolphinScheduler 專案在 GitHub 上的 Star 數 ......

    uj5u.com 2023-06-17 08:11:05 more
  • 資料分析提效5倍,國有集團企業數字化歷程 | 數字化標桿

    從北京到新疆、從中國到南非,從奧運會場館的水泥混凝土到錢塘江畔拔地而起的高樓房產,無不存在著這個集團的身影。 歷經60多年滄桑巨變,某市屬大型國有控股建筑產業集團已發展成為一家中國500強企業、A+H整體上市公司,然而,該集團的實力與決心,遠不限于此。 為讓資料更好支撐業務,該集團與袋鼠云合作,通過 ......

    uj5u.com 2023-06-16 08:28:26 more
  • 云小課|RDS for MySQL引數模板一鍵匯入匯出,引數配置輕松搞定

    摘要:云資料庫RDS for MySQL支持引數模板的匯入和匯出功能。 本文分享自華為云社區《【云小課】【第56課】RDS for MySQL引數模板一鍵匯入匯出,引數配置輕松搞定》,作者:資料庫的小云妹。 云資料庫RDS for MySQL支持引數模板的匯入和匯出功能。 匯入引數模板:匯入后會生成 ......

    uj5u.com 2023-06-16 08:28:13 more
  • 基于Elasticsearch 為電商提供商品資料大資料查詢

    # 基于Elasticsearch 為電商提供商品資料大資料查詢 # 前言 對于現代電商的產品,維度的多員花,與一套強大的搜索引擎,那是非常必要的。今天我們主要是描述我們在從事電商搜索引擎程序中的遇到的一些問題和經驗分享。 # 程序 ### 資料準備 >> 1、我們準備為我們需要做查找的資料做好一張 ......

    uj5u.com 2023-06-16 08:28:02 more
  • 云小課|RDS for MySQL引數模板一鍵匯入匯出,引數配置輕松搞定

    摘要:云資料庫RDS for MySQL支持引數模板的匯入和匯出功能。 本文分享自華為云社區《【云小課】【第56課】RDS for MySQL引數模板一鍵匯入匯出,引數配置輕松搞定》,作者:資料庫的小云妹。 云資料庫RDS for MySQL支持引數模板的匯入和匯出功能。 匯入引數模板:匯入后會生成 ......

    uj5u.com 2023-06-16 08:26:57 more
  • 資料分析提效5倍,國有集團企業數字化歷程 | 數字化標桿

    從北京到新疆、從中國到南非,從奧運會場館的水泥混凝土到錢塘江畔拔地而起的高樓房產,無不存在著這個集團的身影。 歷經60多年滄桑巨變,某市屬大型國有控股建筑產業集團已發展成為一家中國500強企業、A+H整體上市公司,然而,該集團的實力與決心,遠不限于此。 為讓資料更好支撐業務,該集團與袋鼠云合作,通過 ......

    uj5u.com 2023-06-16 08:26:34 more
  • 基于Elasticsearch 為電商提供商品資料大資料查詢

    # 基于Elasticsearch 為電商提供商品資料大資料查詢 # 前言 對于現代電商的產品,維度的多員花,與一套強大的搜索引擎,那是非常必要的。今天我們主要是描述我們在從事電商搜索引擎程序中的遇到的一些問題和經驗分享。 # 程序 ### 資料準備 >> 1、我們準備為我們需要做查找的資料做好一張 ......

    uj5u.com 2023-06-16 08:26:21 more
  • 【后端面經-資料庫】MySQL的事務隔離級別簡介

    [TOC](【后端面經-資料庫】MySQL的事務隔離級別簡介) ## 0. 事務的概念 事務指的是一連串的集中操作指令,一個事務的執行必須執行完所有的動作才能算作執行結束。事務具有四個特點,簡記作`ACID`: - `A`-Atomicity: 原子性,事務的執行必須保證所有的動作都執行完畢; - ......

    uj5u.com 2023-06-15 08:43:13 more
  • Hive常見時間日期函式的使用與問題整理

    hive本身提供的時間函式已經很豐富了,基本上能滿足我們所有的需求,一些特殊需求也可以通過增加一些數學邏輯實作出來。 ......

    uj5u.com 2023-06-15 08:43:09 more