TIS人人都会用的数据集成产品

文章目录

  • 1.TIS是什么?
    • 1.1 简介
    • 1.2 官网及项目地址
    • 1.3 架构
  • 2.功能特性
    • 2.1 基于Web UI的开箱即用
    • 2.2 支持分布式任务分发
    • 2.3 全新的基于微内核的运行环境
    • 2.4 功能覆盖DataX大部分(Reader/Writer)Plugin
    • 2.5 重构DataX的Classloader
    • 2.6 支持RDBMS类型的Writer自动生成目标表
    • 2.7 简化DataX部署方式
  • 3.安装部署
    • 3.1 挂载
    • 3.2 config.properties配置
    • 3.3 docker启动命令
  • 4.首页
  • 5.总结

1.TIS是什么?

1.1 简介

    TIS集成大数据领域优秀组件(FlinkX-CDC,Chunjun(FlinkX),DataX,Flink等)为您提供一站式、开箱即用的DataOps数据中台,大幅提高ETL实时数仓构建效率。

    TIS的愿景是实现企业大数据ETL(Extraction-Transformation-Loading)全覆盖的中台产品,数据抽取(Extraction)是大数据处理所有环节中的第一步,也是最重要的环节。

    最新版本的TIS数据抽取组件是基于:

  • Alibaba DataX,并且在原生DataX之上添加了功能特性大大提高了DataX的可用性
  • 实时数据同步框架Flink-CDC和Chunjun

    当业务分析场景中只需要T+1的数据报表分析,则只需要开启基于DataX的批量数据同步功能。如需要启用实时OLAP数据分析功能,则需要开启基于Flink的实时数据同步功能。

1.2 官网及项目地址

https://tis.pub/
https://github.com/datavane/tis?tab=readme-ov-file

1.3 架构

image-20240704090932366

image-20240704093335493

2.功能特性

2.1 基于Web UI的开箱即用

    TIS基于ng-zorro-antd UI组件开发了一套覆盖DataX 任务定义、执行、更新等生命周期的流程实现,让用户轻松点击鼠标,让各种类型的数据在个端之间畅通无阻。

    系统中提供了各种校验及错误提示机制,让用户不需要直接编辑DataX JSON格式的脚本,而是,TIS系统自动生成DataX JSON配置脚本。因此,大大避免了原生DataX配置目繁杂带来的不必要的错误。

2.2 支持分布式任务分发

    原生开源版DataX解决方案是单机执行的,由于单节点执行任务吞吐量的限制,需要对DataX进行二次开发才能在生产环境中部署。

TIS支持单节点分布式两种任务执行模式。分布式模式基于ZK的Curator分布式任务队列实现Master-Slaver模式,由K8S容器中的Slaver节点来消费任务。

2.3 全新的基于微内核的运行环境

    按照DataX UserGuid介绍,为了运行DataX需要在本地部署多个组件,对于普通小白用户来说有一定门槛。

    TIS采用微内核的架构设计,参照Jenkins的插件架构体系,初始安装包只有300兆。运行时根据需要,在控制台中轻点鼠标,动态加载具体的DataX Plugin(Reader/Writer)。

    对于企业级大数据中台产品内部会有非常多的组件,但是用户只会用到部分组件,采用微内核按需加载的方式会带来非常多的好处。

2.4 功能覆盖DataX大部分(Reader/Writer)Plugin

  • 最新版本已经支持了DataX官方大部分核心Reader/Writer插件,其他插件将会在后续版本中添加。
  • 新版本额外添加了对TiDB Reader Plugin支持

2.5 重构DataX的Classloader

    重构DataX默认ClassLoadercom.alibaba.datax.core.util.container.JarLoader,对其功能嫁接到了TIS的com.qlangtech.tis.datax.TISJarLoader之上,实现了基于TIS平台可视化的插件加载机制,提升了用户体验。

2.6 支持RDBMS类型的Writer自动生成目标表

    部分RDMS类型的Writer数据源如MySQL,Clickhouse等系统实现了通过反射Reader数据源的Meta信息,自动生成Writer Plugin对应的目标数据表,免去了手动创建Writer目标表的DDL语句。

    支持HiveSpark表自动创建,自动添加Partition(基于日期的)

2.7 简化DataX部署方式

    原生DataX部署方案要求,需要在本地环境中支持Python运行环境DataX UserGuid,根据以往经验,Python运行环境的各种问题,常常导致DataX脚本无法正常执行,其实Python只是起到了DataX命令行参数的传递的作用。 所以在TIS的DataX整合方案中已经将Pyhton环境部署的环节去除掉了,这样一来提高了DataX运行稳定性。

3.安装部署

    本文采用docker方式安装部署,部署方式还有很多种,有基于docker-compose的方式部署、有基于k8s的方式部署、有单节点部署、有多节点部署,还集成了PowerJob分布式定时任务,还集成了Zeppelin,官方提供了很多免费的插件使用。

3.1 挂载

image-20240704092035313

3.2 config.properties配置

    config.properties文件放在3.1挂载的config目录下即可,config.properties内容如下:

project.name=TIS
runtime=daily

# MySQL 数据库配置,参数根据用户所在环境自行修改
tis.datasource.type=mysql
tis.datasource.url=xxxx(ip)
tis.datasource.port=3306
tis.datasource.username=root
tis.datasource.password=123456
tis.datasource.dbname=tis_console

# Derby 数据库配置注释掉
#tis.datasource.type=derby
#tis.datasource.dbname=tis_console_db

assemble.host=127.0.0.1
tis.host=127.0.0.1

这里我们使用的是mysql8.0.28数据库持久化数据

需要执行的脚本如下:

https://github.com/qlangtech/tis-ansible/blob/v4.0.0/tis_console_mysql.sql

3.3 docker启动命令

docker run --name=tis -d -p 8080:8080 -v "D:\tis\config\config.properties":/opt/app/tis-uber/tjs/conf/tis-web-config/config.properties -v "D:\tis\config\config.properties":/opt/app/tis-uber/tis-assemble/conf/tis-web-config/config.properties -v "D:\tis\data":/opt/data registry.cn-hangzhou.aliyuncs.com/tis/tis-console:4.0.0

4.首页

    首页地址:

http://localhost:8080/

    首页地址不需要输入默认用户名和密码,用户模块在4.0.0版本还没有开放这个功能,估计还在重构着这块功能吧

image-20240704092916400

5.总结

    本文介绍了TIS这个开源的数据集成产品,还可以去探索它的一个更耐思的功能,数据分析内核还是基于Flink、Datax、Chunjun(原名叫FlinkX),只是TIS做了一些额外的工作,让数据集成处理变得可视化和简便化了,大幅度提高了效率,这些都是一些外壳,都需要添加一个数据分析处理的内核,如Flink等,上一篇文章分享的是:Dinky 让Flink作业纵享丝滑

https://mp.weixin.qq.com/s/IQkr12qL57RPjBjtv1DK_w
https://blog.csdn.net/qq_34905631/article/details/140104456?spm=1001.2014.3001.5502

    之前的文章还分享了StreamPark、Seatunnel、Datax-Web等开源的项目,让我们在技术选型的时候有更多的对比和选择,这个更具自己的需求来选择适合自己的开源的项目,希望我的分享能给你启发和帮助,请一键三连,么么么哒!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/772099.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

科比老大职业生涯数据预测(基于随机森林模型)

1.实验背景 科比布莱恩特,作为NBA历史上最伟大的篮球运动员之一,他的职业生涯充满了无数精彩瞬间。 科比于1996年以13顺位的选秀身份进入联盟,一生都效力于洛杉矶湖人队。于2016年宣布退役,职业生涯获奖无数,5次NBA总…

99. 岛屿数量

题目描述:给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均被水包围。 输入描述&#xff1a…

EXTI寄存器,AFIO的简洁,EXTI配置的流程

一,AFIO简介 AFIO是Alternate Function Input/Output 的缩写,表示复用功能IO,主要用于实现IO端口的复用功能以及外部中断的控制 STM32外设有很多I/O以及内置外设(如12C,ADC,ISP,USART等)。为节省引出管脚的…

命令行运行git reflog(reference log)报错的解决办法

文章目录 1. 检查 Git 是否已安装2. 检查 PATH 环境变量3. 重新安装 Git 在Git中, reflog的英文全称是 “ reference log”。意思是 引用日志(参考日志)。它记录了本地仓库中HEAD和分支引用所指向的提交的变更历史。这包括了你所有的提交&…

经典低功耗四通道运算放大器LM324

前言: SOP14封装LM324 这个LM324运放有几十年的历史了吧?很普通,很常用,搞电路的避免不了接触运放,怎么选择运放,是工程师关心的问题吧? 从本文开始,将陆续发一些常用的运放&#xf…

【AI学习】无线AI的问题和挑战

无线AI,即无线人工智能,是指内生于未来(6G)无线通信系统并通过无线架构、无线数据、无线算法和无线应用所呈现出来的新的人工智能技术体系。 最近一直在进行无线AI的调研,感觉真的是路漫漫其修远兮。业界有一些探索&a…

【人工智能】--生成对抗网络

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉GAN 的基本原理 🍈生成器(Generator) 🍈判别器&…

【前端知识】一篇速成 建议收藏

HTML基础概念 正式敲代码之前呢,我们先来看几个概念: 0 静态网页和动态网页 静态网页: 页面的内容和显示效果就基本上不会发生变化了--除非你修改页面代码。 动态网页: 页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的…

解决SeaTunnel 2.3.4版本写入S3文件报错问题

在使用Apache SeaTunnel时,我遇到了一个写入S3文件的报错问题。通过深入调试和分析,找到了问题所在,并提出了相应的解决方案。 本文将详细介绍报错情况、参考资料、解决思路以及后续研究方向,希望对大家有帮助! 一、…

PyTorch - 神经网络基础

神经网络的主要原理包括一组基本元素,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2… xn ,如果总和大于激活电位,则会产生二进制输出。 样本神经元的示意图如下所述。 产生的输出可以被认为是具有激活电位或偏差的加权…

Java通过GeoLite2-City.mmdb 进行IP信息查询地理定位和经纬度筛选。

引入依赖 <dependency><groupId>com.maxmind.geoip2</groupId><artifactId>geoip2</artifactId><version>4.2.0</version> </dependency>下载数据文件&#xff1a;https://download.lin2ur.cn/GeoLite2/ package com.cqclo…

经典递归分析

在前面一篇中, 已经看过许多直观的递归的例子, 在这篇里, 将分析两个经典的递归问题, 阶乘与菲波那契数列数列, 在此过程中, 还将对比递归与循环(迭代)间的异同, 探讨递归与内存中的栈的关系, 以及递归的效率等问题. 如无特别说明, 示例使用的是 Java, IDE 则为 Eclipse. 阶乘(…

Matplotlib 简介

import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4]) plt.ylabel(some numbers) plt.show() 当使用plot只传入单个数组时&#xff0c;matplotlib会认为这是y的值&#xff0c;并自动生成长度相同&#xff0c;但是从0开始的x值&#xff0c;所以这里的x会自动生成为 [0,1,2,…

python自动化办公之BeautifulSoup爬取并解析html文本

用到的库&#xff1a;BeautifulSoup 实现效果&#xff1a;爬取网站内容&#xff0c;拿到html文本并解析html文本 代码&#xff1a; 先爬取 # 先导入requests包 import requests urlhttps://www.baidu.com responserequests.get(url) # 做1个断言&#xff0c;如果执行成功&a…

java的工厂设备管理系统-计算机毕业设计源码16179

摘要 在现代制造业中&#xff0c;高效的设备管理对于确保生产过程的顺利进行至关重要。为了满足工厂对于设备管理的需求&#xff0c;我们设计并实现了一个基于 Java 的工厂设备管理系统。 该系统旨在提供一个全面、可靠且易于使用的解决方案&#xff0c;以帮助工厂有效地管理…

QT截屏,截取控件为图片,指定范围截屏三种截屏方式

项目中我们常用到截取屏幕&#xff0c;Qt给我的们多种方式&#xff1a; 主要有以下三种&#xff1a; 截取全屏&#xff1b;截取控件为图片&#xff1b;指定位置截屏三种截屏方式&#xff1b; 1.截取全屏 常用&#xff1a; 实现&#xff1a; QScreen *screen QGuiApplicat…

【超万卡GPU集群关键技术深度分析 2024】

文末有福利&#xff01; 1. 集群高能效计算技术 随着大模型从千亿参数的自然语言模型向万亿参数的多模态模型升级演进&#xff0c;超万卡集群吸需全面提升底层计算能力。 具体而言&#xff0c;包括增强单芯片能力、提升超节点计算能力、基于 DPU (Data Processing Unit) 实现…

波动方程 - 在三维图中动态显示二维波动方程的解就像水面波澜起伏

波动方程 - 在三维图中动态显示二维波动方程的解就像水面波澜起伏 flyfish 波动方程的求解结果通常不是一个单一的数值&#xff0c;而是一个函数或一组函数&#xff0c;这些函数描述了波随时间和空间的传播情况。具体来说&#xff0c;波动方程的解可以是关于时间和空间变量的…

#LinuxC高级 笔记二

makefile gcc gdb makefile 1. 分文件编程 1.1 源文件&#xff1a;.c结尾的文件 包含main函数的.c 包含子函数的.c 1.2 头文件&#xff1a;.h结尾的文件 头文件、宏定义、typedef 、结构体、共用体、枚举、函数声明 include引用时“”和<>的区别&#xff1a; <>去系…

JSON字符串中获取一个指定字段的值

一、方式一&#xff0c;引用gson工具 测试报文&#xff1a; {"account":"yanxiaosheng","password":"123456" } 引入pom <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency><gr…