当前位置: 首页 > 软件库 > 大数据 > 数据处理 >

Rope

轻量级 ETL 工具
授权协议 Apache
开发语言 Java
所属分类 大数据、 数据处理
软件类型 开源软件
地区 国产
投 递 者 龙景澄
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Rope 是一款轻量级别的 ETL (Extract-Transform-Load) 工具。主要用于从不同源获取/接受数据,然后统一处理数据后,写入到各种目标源;系统采用多级缓冲和数据缓存,每秒可处理上万级别的数据;而且系统采用插件扩展系统的各个组件,针对不同需求扩展不同插件。

特性

  1. 轻量级别、快速、简单,入门门槛低
  2. 基于Springboot开发
  3. 扩展性强,基于插件开发,可根据不同需求来开发数据读取者、数据处理器、数据写入者
  4. 既可通过UI界面来构建流程、也可以使用jsonyml文件构建流程
  5. 基于 Disruptor 做的缓冲,并新增缓存(内存、redis、rocksdb等),处理速度快

核心模块

输入模块

用于控制数据的输入动作。主要包括两种类型:主动获取型输入、被动接受性输入。

数据读取者

该模块主要是读取数据的具体实现,可自行扩展。不能单独运行,需要作用于 主动获取型Input上才能运行。

数据传输模块

主要对数据进行传送,系统中存在两种数据传输:一个是用于把输入模块输入的数据传输到数据处理器中,另一个是把数据处理器处理后的数据传输到输出模块中。目前支持默认的数据传输器和基于Disruptor的缓冲数据传输器,在实际环境中建议Disruptor的缓冲数据传输器。

数据处理器模块

该组件为数据处理器,其作用是处理数据,比如将字符型数据处理成其他类型、丢弃某数据、新增某数据字段。该组件可自行扩展,是非必须组件。

数据输出模块

该组件主要用于系统数据的输出,即将数据以哪种方式输出,它并不关心数据输出到哪里去,只关心数据如何输出。

数据写入者

该组件为具体数据写入的实现,它主要关心数据写入到哪里去,为数据输出的具体实现。必须作用于Output上才能运行

数据转换器-Converter

数据转换器,该组件主要用于数据类型的转换,大部分情况是配合Reader Writer实现的,核心思想是让Reader Writer关心数据的读取、写入,它关心数据类型的转换细节。这样就具有很强的扩展性。

  • 【可持久化线段树?!】rope史上最全详解(传送门:转载原文出处感谢大佬) https://www.luogu.org/problemnew/show/P3919 看到上面链接中的题时,我在学会可持久化线段树的同时,第一次学会了一个非常屌(cai)的STL大法——rope!!! 这是一个非标准的STL工具,一般情况下要支持c++11或更高才能用(上次去参加APIO时人家毛子评测用的是c++14啊喂

  • 曾经我不会写平衡树……于是在STL中乱翻……学到了pb_ds库中的SXBK的斐波那契堆、支持kth的set,和……ext/rope 先发一个官方的 说明 (鸣谢maoxiaohan1999): http://www.sgi.com/tech/stl/Rope.html 再来例题 IOI2012 scrivener 题意 设计支持如下 3 种操作:  1.T x:在文章末尾打下一个小写字母 x。(t

  • Rope其主要是结合了链表和数组各自的优点,链表中的节点指向每个数据 块,即数组,并且记录数据的个数,然后分块查找和插入。在g++头文件中,< ext / rope >中有成型的块状链表,在using namespace __gnu_cxx;空间中,其操作十分方便。   基本操作: rope test; test.push_back(x);//在末尾添加x test.insert(pos,x);/

  • 链接:https://www.nowcoder.com/acm/contest/141/C 来源:牛客网   题目描述 Eddy likes to play cards game since there are always lots of randomness in the game. For most of the cards game, the very first step in the

  • #include <ext/rope> //头文件 using namespace __gnu_cxx; //调用命名空间 int a[1000]; rope<int> x; rope<int> x(a,a + n); rope<int> a(x); x->at(10); x[10]; x->push_back(x) // 在末尾添加x x->insert(pos,x) // 在p

  • rope是stl封装好的可持久平衡树(不支持kth)。 基本操作(函数)比较少。 下标从0开始。 {1,2,5,4}.insert(1,10)=>{1,10,2,5,4} #include<ext/rope>///头文件 using namespace __gnu_cxx; rope <int> x; int main(){ x.push_back(x); //在末尾加x x.in

  • string 特指用来把某些东西串起来的线状物,很多时候由多根线(thread)缠绕而成,而string也当然可以做动词,意为把某物串起来或挂起来做装饰。 thread有虚实两种用法,实的用法有以下几种:1、用毛或者丝做成的细线,特指用来缝衣服的线;2、某些看起来很细的东西,例如光线、水流、流出来的血液等;3、螺丝上的螺纹。虚的用法有两种:1、线索、讨论的主题。2、“热线”。类似于一系列相关的邮件

 相关资料
  • 问题内容: 编写新的工作流引擎还是使用现有的BPM引擎更好吗:jBPM 5,Activiti 5? 我的应用程序是基于Web的应用程序,性能非常重要。我的疑问是,与编写简单的工作流引擎相比,使用jBPM / Activiti是否会增加性能开销。 如果我采用自我实现,我会错过工作流程的可视化。为了性能,可以进行交易。 问题答案: 这确实取决于您的要求。首先,查看您是否真的需要工作流引擎(此资源或其他

  • 本文向大家介绍python ETL工具 pyetl,包括了python ETL工具 pyetl的使用技巧和注意事项,需要的朋友参考一下 pyetl是一个纯python开发的ETL框架, 相比sqoop, datax 之类的ETL工具,pyetl可以对每个字段添加udf函数,使得数据转换过程更加灵活,相比专业ETL工具pyetl更轻量,纯python代码操作,更加符合开发人员习惯 安装 pip3 i

  • 主要内容:使用普通函数创建 goroutine,使用匿名函数创建goroutine在编写 Socket 网络程序时,需要提前准备一个线程池为每一个 Socket 的收发包分配一个线程。开发人员需要在线程数量和 CPU 数量间建立一个对应关系,以保证每个任务能及时地被分配到 CPU 上进行处理,同时避免多个任务频繁地在线程间切换执行而损失效率。 虽然,线程池为逻辑编写者提供了线程分配的抽象机制。但是,如果面对随时随地可能发生的并发和线程处理需求,线程池就不是非常直观和方便了。能否

  • Jenkins Pipeline插件有一个称为“轻量级签出”的功能,其中主服务器仅从repo中提取Jenkinsfile,而不是整个repo。配置屏幕中有一个相应的复选框。我想在多分支管道中进行轻量级签出,但我在多分支配置屏幕中没有看到复选框。有什么想法如何实现这一点吗?我注意到一些关闭的问题表明此功能可用,但我无法找到任何有关如何实现它的细节。 相关资料: https://issues.jenk

  • 问题内容: JPanel和JFrame有什么区别,以及与轻量级,重量级的关系? 问题答案: JPanel是允许将多个UI组件放在一起的容器。JFrame是使用Swing编写的窗口。 所有的Swing组件都是所谓的“轻型”组件,因为它们是用Java编写的。例如,如果您运行Swing应用程序并尝试使用UI分析工具(例如Windows中的WinSpy)对其进行分析,则只会看到一个元素:窗口(JFrame

  • 问题内容: 题 我正在寻找Java内存对象缓存API。有什么建议吗?您过去使用过什么解决方案? 当前 现在,我只是在使用地图: 要求 我需要扩展缓存以包括以下基本功能: 最大尺寸 生存时间 但是,我不需要更复杂的功能,例如: 来自多个进程的访问(缓存服务器) 持久性(到磁盘) 意见建议 内存中缓存: Guava CacheBuilder-活动开发。请参阅此演示文稿。 LRUMap-通过API配置。