【全面解读】Apache SeaTunnel常见题目全攻略

火影  金牌会员 | 2024-11-19 15:21:20 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 805|帖子 805|积分 2415


使用SeaTunnel需要安装Spark或者Flink这样的引擎么?

不需要,SeaTunnel 支持 Zeta、Spark 和 Flink 作为同步引擎的选择,您可以选择之一就行,社区尤其推荐使用 Zeta 这种专为同步场景打造的新一代超高性能同步引擎。Zeta 被社区用户亲切的称为 “泽塔奥特曼”!
社区对 Zeta 的支持力度是最大的,功能也更丰富。
SeaTunnel支持哪些数据泉源和数据目的地?

SeaTunnel 支持多种数据源泉源和数据目的地,您可以在官网找到具体的列表:
目前SeaTunnel支持哪些数据源的CDC ?

目前SeaTunnel支持 MongoDB CDC、MySQL CDC、Opengauss CDC、Oracle CDC、PostgreSQL CDC、Sql Server CDC、TiDB CDC等,更多请查阅Source
支持从MySQL备库进行CDC么?日志如何拉取?

支持,是通过订阅MySQL binlog日志方式到同步服务器上解析binlog日志方式进行。
MySQL CDC同步需要权限如何开启?

需要有对应库和表的 select 权限。

  • 授权语句如下:
  1. GRANT SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'username'@'host' IDENTIFIED BY 'password';
  2. FLUSH PRIVILEGES;
复制代码

  • 编辑 /etc/mysql/my.cnf  添加以下行:
  1. [mysqld]
  2. log-bin=/var/log/mysql/mysql-bin.log
  3. expire_logs_days = 7
  4. binlog_format = ROW
  5. binlog_row_image=full
复制代码

  • 然后重启 MySQL 服务:
  1. service mysql restart
复制代码
SQLServer CDC同步需要权限如何开启?

使用 SQLServer CDC 数据源需要 SQLServer 先开启 MS-CDC 功能,具体的操纵如下:

  • 查询 SQLSERVER CDC Agent 是否已经开启
  1.    EXEC xp_servicecontrol N'querystate', N'SQLServerAGENT';
  2.    - 如果结果是running.证明已开启,否则需要手动开启
复制代码

  • 差别开启方式
2.1. 如果是 Linux 开启 SQLSERVER CDC Agent
  1.    /opt/mssql/bin/mssql-conf setup
  2. # 返回结果如下
  3. 1) Evaluation (free, no production use rights, 180-day limit)
  4. 2) Developer (free, no production use rights)
  5. 3) Express (free)
  6. 4) Web (PAID)
  7. 5) Standard (PAID)
  8. 6) Enterprise (PAID)
  9. 7) Enterprise Core (PAID)
  10. 8) I bought a license through a retail sales channel and have a product key to enter.
复制代码
可以根据实际情况来进行选择,可以直接选择 2 免费的,同时包含 agent。
选择后设置开启 agent。
  1. /opt/mssql/bin/mssql-conf set sqlagent.enabled true
复制代码
2.2、如果是 Windows 开启 SQLSERVER Agent (以 SQLServer 2008 为例)
  1. 在“开始”菜单中,依次指向“所有程序”、Microsoft SQL Server 2008 R2、“配置工具”,然后单击“SQL Server 配置管理器”**。
  2. 在 SQL Server 配置管理器中,展开“服务”,然后单击“SQL 代理”。
  3. 在结果窗格中,右键单击任何实例,再单击“启动”。
  4. SQL Server Agent 旁的图标上和工具栏上的绿色箭头指示 SQL Server Agent 已成功启动。
  5. 单击“确定”。
复制代码

  • (2)启动任务管理器-打开服务,找到SQLServer Agent (MSSQLSERVER)" 服务(此中 "MSSQLSERVER" 大概根据 SQL Server 实例而有所差别),然后启动服务。
3、先设置库级别的CDC (需开通库级别和表级别 CDC)
  1. -- 下面设置库级别开启CDC,该级别下,开启的CDC的库下面的所有表自动开启CDC
  2. USE TestDB; -- 替换为实际的数据库名称
  3. EXEC sys.sp_cdc_enable_db;
  4. -- 查询库是否开启CDC
  5. SELECT name, is_cdc_enabled
  6. FROM sys.databases
  7. WHERE name = 'database';-- 替换为要检查的数据库的名称
复制代码
4、然后设置表级别的CDC
  1. -- 下面设置表级别开启CDC,该级别下只有显示开启了CDC的表才能进行CDC同步
  2. USE TestDB; -- 替换为实际的数据库名称
  3. EXEC sys.sp_cdc_enable_table
  4. @source_schema = 'dbo',
  5. @source_name = 'table', -- 替换为要启用 CDC 的表的名称
  6. @role_name = NULL,
  7. @capture_instance = 'table'; -- 替换为一个唯一的捕获实例名称
  8. -- 查询表是否开启CDC
  9. USE TestDB; -- 替换为实际的数据库名称
  10. SELECT name, is_tracked_by_cdc
  11. FROM sys.tables
  12. WHERE name = 'table'; -- 替换为要检查的表的名称
复制代码
这样就可以了。
这里多说一句,连接器对应的 cdc 权限开启步调在官网都有写,请参照 SeaTunnel 对应的官网操纵即可。
是否支持无主键表的CDC同步?

不支持无主键表的 cdc 同步。缘故因由如下:
好比上游有 2 条一模一样的数据,然后上游删除或修改了一条,下游由于无法区分到底是哪条需要删除或修改,会出现这 2 条都被删除或修改的情况。
没主键要类似去重的效果本身有点儿自相矛盾,就像辨别西游记里的真假悟空,到底哪个是真的。
我有一个题目,我自己无法办理

我在使用 SeaTunnel 时遇到了题目,无法自行办理。 我应该怎么办?有以下几种方式可以办理:

  • 题目列表邮件列表中搜索看看是否有人已经问过同样的题目并得到答案。
  • 如果您找不到题目的答案,您可以通过这些方式联系社区成员寻求帮助。
  • 中国用户可以添加微信群助手:seatunnel1,参加社区交换群,也欢迎大家关注微信公众号:seatunnel。
如何声明变量?

您想知道如何在 SeaTunnel 的配置中声明一个变量,然后在运行时动态更换该变量的值吗? 该功能常用于定时或非定时离线处理,以替代时间、日期等变量。 用法如下:
在配置中配置变量名称。 下面是一个sql转换的例子(实际上,配置文件中任何地方“key = value”中的值都可以使用变量更换):
  1. ...
  2. transform {
  3.   Sql {
  4.     query = "select * from user_view where city ='${city}' and dt = '${date}'"
  5.   }
  6. }
  7. ...
复制代码
以使用 SeaTunnel Zeta Local模式为例,启动下令如下:
  1. $SEATUNNEL_HOME/bin/seatunnel.sh \
  2. -c $SEATUNNEL_HOME/config/your_app.conf \
  3. -m local[2] \
  4. -i city=Singapore \
  5. -i date=20231110
复制代码
您可以使用参数“-i”或“--variable”后跟“key=value”来指定变量的值,此中key需要与配置中的变量名称类似。详情可以参考:https://seatunnel.apache.org/docs/concept/config
如何在配置文件中写入多行文本的配置项?

当配置的文本很长并且想要将其换行时,您可以使用三个双引号来指示其开始和竣事:
  1. var = """
  2. Apache SeaTunnel is a
  3. next-generation high-performance,
  4. distributed, massive data integration tool.
  5. """
复制代码
如何实现多行文本的变量更换?

在多行文本中进行变量更换有点麻烦,因为变量不能包含在三个双引号中:
  1. var = """
  2. your string 1
  3. """${you_var}""" your string 2"""
复制代码
请参阅:lightbend/config#456
如何配置SeaTunnel-E2E Test的日志记载相干参数?

seatunnel-e2e 的 log4j 配置文件位于 seatunnel-e2e/seatunnel-e2e-common/src/test/resources/log4j2.properties 中。 您可以直接在配置文件中修改日志记载相干参数。
比方,如果您想输出更具体的E2E Test日志,只需将配置文件中的“rootLogger.level”降级即可。
如果想学习SeaTunnel的源代码,应该从哪里开始?

SeaTunnel 拥有完全抽象、结构化的非常优秀的架构设计和代码实现,许多用户都选择 SeaTunnel 作为学习大数据架构的方式。 您可以从seatunnel-examples模块开始了解和调试源代码:SeaTunnelEngineLocalExample.java
具体参考:https://seatunnel.apache.org/docs/contribution/setup
针对中国用户,如果有伙伴想贡献自己的一份力量让 SeaTunnel 更好,特别欢迎参加社区贡献者种子群,欢迎添加微信:davidzollo,添加时请注明开源共建。
如果想开发自己的source、sink、transform时,是否需要了解SeaTunnel全部源代码?

不需要,您只需要关注 source、sink、transform 对应的接口即可。
如果你想针对 SeaTunnel API 开发自己的连接器(Connector V2),请查看Connector Development Guide
参考视频:https://www.bilibili.com/video/BV1bJ4m1P7bq/?vd_source=e139ecc995ab936267a7991b9de55f6c
本文由 白鲸开源 提供发布支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表