Equalum已经到来了!(概述)

突然!這次我們將玩弄名為「Equalum」的東西。

我之前已经多次与大家分享了有关”MemSQL及其周边”的简单验证工作的状况,但这次突然出现了极度自我需要进行验证工作的必要,我决定与大家分享其结果。

通过我们各种验证工作可以看出,迄今为止的工作主要是基于与MySQL高度兼容的SQL和本机的内存数据库。而对于传统SQL数据库来说,超出了初始容量限制、需要进行数据迁移或性能增强时,这通常是一项头痛的工作。在现今的商业智能(BI)、机器学习(ML)和人工智能(AI)等“数据挖掘类应用”方面,我们可以预期MemSQL在“扩展”能力方面非常高,并且具有持续发展的投资回报潜力。这是Dx时代的新型数据源,同时也可利用传统经验和资源。

我明白我们能够快速、灵活地适应最终应用程序。

對於MemSQL的靈活性(可以充分利用以前的MySQL經驗,並且可以幾乎完全重用周圍的環境),以及充分利用原生的內存技術進行高性能處理(I/O、SQL事務),我認為您已經理解在導入後可以簡單地使用。此外,我認為許多人可能認為即使在處理性能問題和數據仓庫構建方面可能有困難,但他們希望能夠以盡可能符合時代需求的速度和靈活性來利用數據挖掘!(當然,也包括IoT、社交媒體等,以及對未來5G社會的新可能性的挑戰…)

但是!

如果MemSQL没有流入数据,那么显然它只会变成一个单纯的初始引入成本,成为吞噬金钱的虫子,如维护管理和电费等是理所当然的。要大量且高速地处理数据,应该怎么做呢?传统的做法是从零开始构建维护主流、王道的DWH(数据仓库)?但毫无疑问,现场需要的数据肯定要求满足以下几点:
(1)速度
(2)效率
(3)灵活性
一样也不能少!我认为现在的情况就是这样。
当一切都准备好后,市场、竞争对手和我们自己的前提条件都已经改变了。在这样的情况下,还谈什么数据驱动是DX(数字化转型)的重要项目……事实上不存在!

利用速度的速度

如果能够快速进行SQL处理,为了最大化其价值,就必须在必要的时刻以尽可能高速和高效的方式收集、展开和处理“必要的数据”。

那么,怎样将数据输入呢…

在进行MemSQL验证时,我们介绍了通过像kafka这样的消息代理或者通过共享在网络上的目录等途径的”管道功能”。如果是通过已有的一些云存储系统或者上述的文件系统进行数据收集,那么相对而言进入利用模式可能会比较容易,但实际情况下我们将面临一个非常现实但又很重要的问题,那就是”数据存在于哪里?”。当然,如果要从零开始构建全新的机制,就可以对所有组成部分有相当大的自由度,但改动已经建立起来并运行多年的现有机制…这不仅需要相当大的勇气,而且我认为这种现状可能是”在数据驱动上尝试或无法采取Dx的原因”。我认为充分利用数据,创造更好的数据(结果)…这是数据驱动的基本原则,所以我们将从现在开始分几次,进一步验证能否突破这方面的障碍,探索新的可能性。

于是,Equalum如约而至……

我建议您阅读一下Equalum公司的官方网站,他们是一家位于硅谷的新兴创业公司,目前已经在实际中获得了许多企业的采用。他们也已经开始在日本市场展开业务,StrategyCore公司正在进行国内市场的拓展。如果您需要用日语沟通,欢迎发送邮件至Equalum公司的联系邮箱。

image.png

产品的特点

Equalum的特点可以大致分为以下三个方面:
(1)将复杂的处理简化
(2)将所需的数据按照需要的形式放置在需要的位置
(3)具备快速处理和灵活部署的能力

通常情况下,如果要从零开始构建这种类型的系统,则必须熟悉各种开源软件(OSS),并根据实际需求自行引入和构建。当然,最近由于各个OSS本身的发展和信息共享的扩大等原因,相比以前,我们已经能够更好地应用这些软件。然而,“将它们组合在一起,并优化各自之间的连接等等”仍然需要相当的准备和经验。

Equalum注重实现如何以简单的方式实现“数据注入”以及以简单的方式同时提供所需功能(复杂化的原因)。该产品独特之处在于,它的设计和开发旨在让任何人在安装后1-2周内就能实现运行(甚至更短的时间),而不是像传统的类似系统那样按照现有各个阶段有条不紊地推进,直到“半年到一年后开始运行”。

image.png

目前的企業和组织中数据孤立化问题成为减缓数据驱动的数字化转型的重要因素。 许多传统数据系统通常以时间为单位(其中很多原因可能是数据大小限制、维护管理以及扩展成本和风险问题), 一旦记录,基本上就只能作为电子账簿功能,主要是用于搜索和修改,而对于数据驱动的应用,如数据提取和表重构等,则在很大程度上是意外之外的(相较重视安全和可靠性)。经常会听到人们问在日本的企业中是否存在大数据,我认为包括磁带在内的总量应该足够大数据。当然,就首先假设为需要规模庞大且面向不特定多数的数据系统而言,传统定型的规模是困难的,所以最近几年快速发展的云技术的推广中,也出现了越来越多以大数据技术为基础的实施领域, 但基本上仍然是以电子账簿类型(从OA的初期起的基本概念)作为现有数据源如何以最低风险进行利用的核心关键点。

image.png

我们需要汇集复杂而广泛分散的数据,并在并行进行必要的处理的同时,将其存储到最终的活用表中,作为一连串处理的必要条件,我们必须同时快速执行这些处理并保持高处理效率。作为处理大量数据的技术,我认为通过借鉴大数据等技术可以实现,尽管难度不同。为此,需要将几种不同的技术有效且高效地组合起来,这也是在某种程度上使功能(灵活性)和性能兼得的难点之一。而Equalum的情况是通过结合独特的技术解决了这一难题,提供了在流式处理数据的功能,这在过去是不可能或非常困难的(无需复杂的编程…)。

关于搭建验证环境

目前,Equalum公司并未正式提供通过网站等途径的限时规格许可。基本上,我们的做法是以商谈为基础进行正式的PoC,以实际商业运作为前提。因此,以下信息仅供参考,请您理解。
(这次我们特别获准试用,也是为了验证对日文数据的操作)

操作系统运行的是Linux CentOS7 64位(也可以使用RHEL的等效版本)。
安装方式是网络安装(也可以考虑离线带入)。
硬件配置推荐为3台集群配置(最低1台也可以,但仅限到功能评估级别)。
推荐的内存容量为64GB(如果只是进行演示等,则可以从16GB开始运行)。
推荐的核心数为16个(如果只是进行演示等,则可以从4-8个核心开始运行)。

我們在這次的測試環境中使用了一台搭載32GB記憶體和四核心八執行緒的Core i7桌上型電腦來進行測試。

基本上,Equalum的控制台是通过web进行访问的,您只需要输入服务器的IP地址和端口号,并设置ID/密码即可。

image.png

已经使用了多个(试用版)数据源,并进行了连接确认,进行了几个Flow处理步骤,并设置了接收数据的目标,但只有正常启动时才会出现这样的控制台。

关于整体趋势

首先,我们将进行最上游数据源的设置。对于批处理系统来说,使用通常的JDBC连接并进行几乎相同的设置即可完成配置过程。但是,在本次验证的重要的流处理中,需要进行一些预先的设置(本次将在MySQL上进行验证),关于这些详细信息,我将在之后包括背景等进行解释。

接下来我们将进行目标设置。Equalum默认提供了基于HDFS的存储,但这次我们决定尝试使用我们常用的MemSQL。由于这是基础设置中的一般数据库信息设置,所以我认为在正式的POC等工作中也不会有特别的问题。

暂时先进行到这里的工作。

设置数据源

选择位于[SOURCE]右上方的[+ADD]按钮。

image.png

在我们进行验证的环境中,可以将这些数据源配置在上游。由于目前仍在持续开发中,因此我认为将来可以进一步从各种数据源中在必要的时候进行必要的处理并处理所需的数据。

由于此次我们将对流式处理进行验证,所以我希望连接并试用支持这一功能(实际上,需要在数据源端实现该功能,因此并非所有的数据源都能够实现)的MySQL。

image.png

(1)首先指定整体的名称为Source Name(这里设定为MySQL_Streaming)。
(2)设置连接的数据源的主机信息(包括端口号)。
(3)指定一个具备DDL访问权限的数据库帐户用户名(这里无条件地设定为root)。
(4)同样,设置密码。

基本上

image.png

关于这个问题,在最上面的菜单中是可以的(其他细节我们另外分享)。

(5)请根据需要选择时区。
(6)将[capture类型]设置为二进制日志(这需要在MySQL端进行准备)。
(7)暂时使用默认的监控间隔(根据整体平衡适当调整该数值)进行操作。
完成以上步骤后,点击左下角的[测试连接]按钮。如果设置没有问题,在控制台的顶部会显示绿色的消息,然后选择[创建]按钮正式注册该来源。

设定目标

请选择位于[TARGET]右上方的[+ADD]按钮。

image.png

在本次验证中,我们能够从这些源中适时选择目标。当然,我们这边的开发也在逐步进行中,所以我认为未来这个选择将会增加。在本次验证中,我们决定将之前进行了额外验证的MemSQL用作接收方。

image.png

尽管有若干不同的界面,但只需要按照之前配置上游数据源的几乎相同步骤进行操作即可。(仅需事先创建并配置具有注册用户ID/密码并支持DDL的数据库)

基本的的前期处理已经完成了。

顺便说一下…

如果您有阅读过之前的MemSQL验证的话,可能会有一个疑问:“哎呀?MemSQL账户的密码是什么呢……”因此,在本次验证中,我们通过一种技巧(尽管只是基本数据库用户创建……)在MemSQL中运行以下命令来创建验证所需的账户。

CREATE USER 'eqtest'@'%' IDENTIFIED BY 'eqpassword';
GRANT ALL PRIVILEGES ON *.* TO 'eqtest'@'%' IDENTIFIED BY 'eqpassword' WITH GRANT OPTION;

流媒体处理的设定…

你可以利用Equalum公司提供的”zero coding”环境搭建方法,来充分利用批处理功能的更加精细化的实现。因此,本次验证将运行具备实时流处理功能的操作,即在数据不断展开到上游的情况下,将这种情况以 “几乎实时” 的方式处理并流向目标端。

一般来说,对于这种类型的处理…,你可以想象基本的情况是将Zookeeper、Kafka和Spark巧妙地组合起来进行环境搭建,并使用Java开发应用程序层,包括主题、生产者和消费者等繁琐的步骤。但是,Equalum公司通过巧妙地解决这些复杂的部分,只通过GUI来请求必要的指令。

(1) 登录Equalum。

image.png

首先访问数据源并进行必要的设置。选择位于[Streams]右侧的[+ADD]按钮。

image.png

点击[Schema]和[Table]右上方的图标,填写必要的项目后,将反映最新的数据源状态。

image.png
image.png

请根据需要适当设置[事件流名称],然后点击右下方的[确定]按钮。

image.png

如果你成功点击右下方的[创建]按钮并成功注册,那么暂时来说,第一阶段的设置已经完成了。

image.png

如果假设我们进行原始环境配置并逐个定制处理此类事务,那么我们需要熟悉每个组成要素并进行操作,并且考虑到启动后可能出现的添加或更改,可能会导致我们根本不去处理!Equalum巧妙地隐藏了这些问题,并且只需选择和设置必要的项目(还可以选择更高级的设置:[高级设置]),就能够利用高级流处理。

这次的总结

然后,选择上游数据源和目标源,通过鼠标点击和必要项目的设置来定义流的关系,确认整个环境的运行状况后,将数据流入指定的上游表中,根据之前的设置将自动进行流式处理。这部分有专用的基于GUI的设计工具,希望在下一次的实践中能够共享基本的使用方法。

此外,在下一次的实践中,我们将使用Python创建一个简单的日语数据伪造工具,使用该工具将生成的数据连续插入上游数据库,并确认更新信息自动处理到下游目标源,接下来的时机最终将尝试几个简单的转换处理。

以下是Equalum继《Equalum登场!(实践篇)》之后的内容。

感谢词

我們在Equalum公司的特別許可下進行了本次驗證。我們要感謝Equalum公司給予我們這個寶貴的機會,同時如果本文內容和Equalum公司官方網站上公開的內容有所不同,請以Equalum公司的信息為準。

bannerAds