【数据中台】开源项目(4)-BitSail

介绍

BitSail是字节跳动开源的基于分布式架构的高性能数据集成引擎, 支持多种异构数据源间的数据同步,并提供离线、实时、全量、增量场景下的全域数据集成解决方案,目前服务于字节内部几乎所有业务线,包括抖音、今日头条等,每天同步数百万亿数据。

开源地址:GitHub - bytedance/bitsail: BitSail is a distributed high-performance data integration engine which supports batch, streaming and incremental scenarios. BitSail is widely used to synchronize hundreds of trillions of data every day.

为什么我们要使用BitSail

BitSail目前已被广泛使用,并支持数百万亿的大流量场景。同时在火山引擎云原生环境、客户私有云环境等多种场景下得到验证。

我们积累了很多经验,并做了多项优化,以完善数据集成的功能

  • 全域数据集成解决方案, 覆盖离线、实时、增量场景

  • 分布式以及云原生架构, 支持水平扩展

  • 在准确性、稳定性、性能上,成熟度更好

  • 丰富的基础功能,例如类型转换、脏数据处理、流控、数据湖集成、自动并发度推断等

  • 完善的任务运行状态监控,例如流量、QPS、脏数据、延迟等

BitSail使用场景

  • 异构数据源海量数据同步

  • 流批一体数据处理能力

  • 湖仓一体数据处理能力

  • 高性能、高可靠的数据同步

  • 分布式、云原生架构数据集成引擎

BitSail主要特点

  • 简单易用,灵活配置

  • 流批一体、湖仓一体架构,一套框架覆盖几乎所有数据同步场景

  • 高性能、海量数据处理能力

  • DDL自动同步

  • 类型系统,不同数据源类型之间的转换

  • 独立于引擎的读写接口,开发成本低

  • 任务进度实时展示,正在开发中

  • 任务状态实时监控

BitSail架构

Source[Input Sources] -> Framework[Data Transmission] -> Sink[Output Sinks]

数据处理流程如下,首先通过 Input Sources 拉取源端数据,然后通过中间框架层处理,最后通过 Output Sinks 将数据写入目标端

在框架层,我们提供了丰富的基础功能,并对所有同步场景生效,比如脏数据收集、自动并发度计算、流控、任务监控等

在数据同步场景上,全面覆盖批式、流式、增量场景

在Runtime层,支持多种执行模式,比如yarn、local,k8s在开发中

支持的连接器

DataSource

Sub Modules

Reader

Writer

Assert

-

ClickHouse

-

-

Doris

-

Druid

-

Elasticsearch

-

Fake

-

FTP/SFTP

-

Hadoop

-

HBase

-

Hive

-

Hudi

-

JDBC

MySQL

Oracle

PostgreSQL

SqlServer

Kafka

-

Kudu

-

LarkSheet

-

MongoDB

-

Print

-

Redis

-

RocketMQ

-

SelectDB

-

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

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

相关文章

elasticsearch 内网下如何以离线的方式上传任意的huggingFace上的NLP模型(国内闭坑指南)

es自2020年的8.x版本以来,就提供了机器学习的能力。我们可以使用es官方提供的工具eland,将hugging face上的NLP模型,上传到es集群中。利用es的机器学习模块,来运维部署管理模型。配合es的管道处理,来更加便捷的处理数据…

Java高级技术-单元测试

单元测试 Junit单元测试框架 Junit单元测试-快速入门 方法类 测试类 Junit框架的基本注解

Springboot自定义starter

一、start背景和简介 1.背景 工作中经常需要将多个springboot项目共同的非业务模块抽取出来,比如访问日志、维护请求上下文中的用户信息或者链路id等等。此次模拟的是请求中用户信息维护,方便整个请求中用户信息的取用。 2.作用 根据项目组的实际需求…

布隆过滤器,Redis之 bitmap,场景题【如果微博某个大V发了一条消息,怎么统计有多少人看过了】

学习文档 文章目录 一、什么是 Bitmap1-1、Bitmap 相关命令 二、Bitmap 和 Set 对比2-1、数据准备2-2、内存对比2-3、性能对比 三、布隆过滤器3-1、理论3-2、代码实现 四、Java中的 Hash 函数 最近面试时,遇到了一个场景题,面试官问如何统计一条微博大V的…

pandas基础操作2

数据读取 我们想要使用 Pandas 来分析数据,那么首先需要读取数据。大多数情况下,数据都来源于外部的数据文件或者数据库。Pandas 提供了一系列的方法来读取外部数据,非常全面。下面,我们以最常用的 CSV 数据文件为例进行介绍。 …

邮件迁移-邮件同步-批量完成邮件迁移解决方案-imapsync

背景: 公司原来使用的邮箱服务器实现方式是james的cassandra-app,如今要启用新的邮件服务器,架构用的是james的distributed-app,升级后,要求邮件数据不丢失,因此要平滑完成邮件的迁移工作,保障升级后邮件不…

Selenium page object模式Python

目录 概述 优点 示例 项目结构: 基础页面类BasePage 业务页面类BaiduHomePage 测试类test_baidu: 文件工具类file_util 运行日志: 测试结果: 概述 在web应用程序的UI中,有一些区域可以与测试交互。页面对象…

[数据结构]红黑树的定义以及添加原则

红黑树是一种自平衡的二叉查找树,是一种常用的数据结构 1972年出现,在当时被称为平衡二叉B树。后来1978年被修改为如今的“红黑树” 它是一个特殊的二叉查找树,红黑树的每一个节点上都有储存位表示节点的颜色 每一个节点可以是红或者黑&#…

KNN实战-图像识别

数据说明 是在循环0-9的数字一直循环500次所得到的数据,然后以手写照片的形式存在 识别的步骤 加载数据构建目标值构建模型参数调优可视化展示 加载数据 import numpy as np import matplotlib.pyplot as plt # 记载数据 data np.load(./digit.npy) data构建目…

什么是Ros(二)- 结构和通讯概述

目录 1.架构 2.通讯 参考文献 上接:什么是Ros(一)-CSDN博客 1.架构 共三层:OS 层,中间层,应用层。 OS 层:OS 层是操作系统层也就是我们现在使用的ubuntu(linux)&…

【Java Web学习笔记】 2 - CSS入门

项目代码 零、 CSS引出 CSS 教程 官方教学文档 1.在没有CSS之前,我们想要修改HTML元素的样式需要为每个HTML元素单独定义样式属性,费心费力。所以CSS就出现了。 2.使用CSS将HTML页面的内容与样式分离提高web开发的工作效率(针对前端开发&a…

Spring Cloud笔记 —— 什么是Spring Cloud?

引言: 在写这篇博客之前,其实吧,博主很久之前有过一段时间的Spring Cloud的案例项目开发经验,就是一个案例项目开发而已,也说不上有多高大上,那个时候,我其实也是从众而已罢了,毕竟现…

Java 设计模式系列:代理模式

文章目录 介绍静态代理基本介绍应用实例静态代理优缺点 动态代理基本介绍JDK 中生成代理对象的 API Cglib 代理基本介绍实现步骤 介绍 1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象 2&#xff09…

JOSEF 快速中间继电器 KZJ-4H-L DC220V 导轨安装

快速中间继电器KZJ-4H-LDC220V导轨安装导轨安装是广泛用于电力系统,能够断货开或开通大负载,并且具有较强的断弧能力,适用于交流50/60Hz。电压24380V,直流电压24280V自动控制电路中以增加保护和控制回路的触点数量与触点容量。 KZJ系列快速中…

leetcode 209. 长度最小的子数组(优质解法)

代码&#xff1a; //时间复杂度 O(N) ,空间复杂度 O(1) class Solution {//采用滑动窗口的方法解决public int minSubArrayLen(int target, int[] nums) {int numsLengthnums.length;int minLengthInteger.MAX_VALUE;int left0;int right0;int sum0;while (right<numsLengt…

详解原生Spring框架下的方法切入点表达式

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

C++/Qt读写xml文件

今天介绍C/Qt如何读写xml文件&#xff0c;xml文件一般用于作为配置文件使用。 C C读写xml文件需要借助第三方来实现&#xff0c;比较好用的有tinyxml2和pugixml&#xff0c;对应的网址链接。 tinyxml2 pugixml 以tinyxml2为例&#xff0c;下载后进行解压可以看到以下文件&…

Python---格式化输出与%百分号----涉及转义符 \ 反斜杠的使用

相关链接Python--格式化输出中的转义符号----\t 制表符&#xff08;空格的&#xff09;和\n&#xff08;换行的&#xff09;_唯元素的博客-CSDN博客 Python---字符串&#xff08;用单、双引号、 三单/双引号定义。反斜杠 \ 转义&#xff0c;单在双内/双在单内 &#xff09;-CS…

【电路笔记】-串联和并联电阻

串联和并联电阻 文章目录 串联和并联电阻1、概述2、串联和并联电阻示例13、串联和并联电阻示例2 电阻器可以无限数量的串联和并联组合连接在一起&#xff0c;形成复杂的电阻电路。 1、概述 在之前的教程中&#xff0c;我们学习了如何将各个电阻器连接在一起以形成串联电阻器网…

混沌系统在图像加密中的应用(基于哈密顿能量函数的混沌系统构造1.5)

混沌系统在图像加密中的应用&#xff08;基于哈密顿能量函数的混沌系统构造1.5&#xff09; 前言一、自治非哈密顿系统的构造、动态特性分析1.相关理论基础2.两个四维自治非哈密顿系统3.数值分析 python代码 前言 续接混沌系统在图像加密中的应用&#xff08;基于哈密顿能量函…