数据科学低代码工具思考2—现状分析

    数据科学工具伴随着计算机技术的发展也在持续的演进。数据库、大数据以及人工智能等时代标志性技术的出现,对数据科学工具的能力也有了更高的要求。一般而言,工具发展的趋势都是首先会出现一个能够支持数据科学计算的开发框架,方便用户能够更加便捷的使用最新的计算机技术解决数据科学相关的计算。而后,伴随着开发框架的逐渐成熟,为进一步降低用户的使用难度,此时会出现一些数据科学相关的低代码工具。

    这些低代码工具可以是基于开发框架衍生的,也可以是独立于开发框架之外的。比如当大数据技术出现后,首先出现了Spark以及Flink等这样可以支持对大数据进行ETL以及分析计算的开发框架,伴随着两个计算框架应用的逐渐成熟,出现了很多依托于二者的低代码开发平台,如:StreamSets、SAS的Viya等;再比如2023年LLM爆火后,立刻出现了LangChain,该开发框架支持更好的应用大模型,随后出现了基于LangChain的低代码工具Flowise,用来简化LangChain的应用。

    由此可见,降低工具或开发平台的使用难度始终是一个会持续存在的需求。降低使用难度就意味着可以降低对使用者的能力要求,提升使用效率,并最终达成节省成本的效果。其物理学上的意义就是可以降低能量的消耗。更低能量消耗的特点使其符合了社会发展的总趋势,也再次证明了其存在的合理性。但数据科学低代码工具能否普及并被广泛应用还存在着很多其它制约因素。

    相信绝大多数读者都或多或少见过如下经典界面表现形式的低代码工具:

Kettle流程图示例

    这类工具都支持使用节点和节点间的连线定义流程。节点描述了具体功能,不同的节点表示不同的功能;连线表示数据的流转关系及节点的执行顺序。这种组织方式直观易懂,除了在数据科学低代码领域(包括:ETL工具、分析建模工具)被广泛应用外,我们也经常可以在其它类型的软件中见到,如:工作流软件、RPA(机器人自动化)软件、SOAR(安全编排自动化与响应)软件等。

    随着近些年大数据技术的蓬勃发展,在数据清洗领域出现了ELT理念。其与传统ETL理念的最大区别是,其将数据转换工作迁移到了数据转移之后,即进行数据处理任务时,先采用抽取(E)、装载(L)两个步骤,将数据从源存储系统转移到目标存储系统,然后再利用目标存储系统的计算能力,按需对数据进行转换。这种数据处理方式可最大限度的利用目标存储系统的计算能力,用其内置算法解决数据的复杂清洗问题。这类低代码数据清洗工具以国外的Fivetran、Stitch等为代表,他们配置界面更简单,对使用者要求更低。但这是以牺牲能够支撑复杂的数据数据清洗场景作为代价的,比如同时完成多源数据插入多目标数据的场景。另外,这种低代码表达方式相对不够直观,无法给出数据处理过程的总览。给人一种之见树木,不见森林的感觉。因此,笔者更喜欢上面谈及的经典的点线模式的低代码表达方式。但支持这种表达方式的低代码工具开发起来更困难一些,做到好用、易用很不容易,直接影响到了这类工具在市场上的认可度与普及度。

    早期的经典点线模式的数据科学低代码工具,如:Kettle、RapidMiner、SPSS Modeler等都是单机工具。他们全部是面向结构化数据的,且数据处理量不大,单机提供的算力足以应付。这种单机工具能够提供丰富的操作交互,给出足够多的提示信息,其中最重要的就是流程中的每个功能节点输出的结构是什么,流程编写者将根据输出结构选取和使用后续功能节点。单机工具的一般实现手段是以选中的功能节点为终点,执行一遍前序流程,最终根据执行结果给出输出结构。这种实现方式在早期数据规模不大时可以提供不错的交互体验。但伴随着我们迈入大数据时代,发现面对海量的数据,这种实现方式已行不通。我们无法提供这样的计算方式来获得输出结构,因为没人知道这需要花费多长时间。对于正在编写数据处理流程的工程师,这样的交互体验是完全无法接受的。因此,如我们所见,很多基于Spark、Flink计算框架的低代码工具无法给出合适的信息提示,以至于用户的交互体验不足。

    另外,如我们上面给出的Kettle工具的低代码流程图,我们可以看到每个功能节点可通过接入连线获取数据,并通过输出连线输出数据。这是一种非常普遍的表达方式,除Kettle外,SPSS Modeler、阿里Dataworks、Integrate.io等工具皆采用了这种模式,这种模式有一个比较明显的缺点,就是通过节点的外观,使用者不清楚该功能节点可以或必须接受几个输入,能够输出几种结果。如图中的“主表-子表连接”功能节点,需要接受2个输入,但从外观却看不出来。那么更好的一种低代码表达形式如下:

RapidMiner流程图示意

    上图是RapidMiner工具的流程表达方式,可以看到其每个功能节点上都有输入/输出端口的表达,通过端口我们可以直观的看到一个功能节点工作时需要几个输入并会有几种输出结果(注:我们可以看到图中的每个功能节点都有多个输出,这是由于RapidMiner的每个端口只能有一个连线的设计导致的。即其输出端口只能连接一个后续的输入端口。如果某个前置输出端口希望连接两个不同后续输入端口时,其无法表达。故其在每个功能节点上都保留了一个可以将输入原封不动的输出的端口,这样可以变相的实现一个输出端口连接多个后续输入端口的功能。但这的确不是一个好的设计,一个输出端口是否可以同时连接多个后续输入端口,一个后续输入端口是否可以同时接受多个输出也是低代码工具是否易用的一个考察点。这里我们忽略不足,着重探讨RapidMiner给出的端口的这一概念。)。这种为功能节点明确输入/输出端口的表达方式显然是一种更清晰的表达。如同编程中的函数声明一样,函数包括名称、参数、返回值。参数约定了输入(有时也包括输出),而返回值约定了输出,使用者一目了然。功能节点的输入与输出端口也对应扮演了函数的参数与返回值角色,让使用者能够更清晰的使用功能节点。

    现入今随着计算机技术的不断演进,数据科学从小数据集到大数据,从结构化延伸到文本、图片等非结构化数据。低代码科学工具也层出不穷,用户跟着不断的迭代更新。这些因新技术催生的低代码工具往往与之前的工具无法兼容,是一种全新的工具,这使得用户为使用新技术,而不得不切换和学习新工具。如文章开头介绍的,依托于Spark、Flink技术构建的低代码工具并不兼容传统小集合数据的工具,但我们也知道,并不是有了大数据,小数据集分析的需求就不存在了。小数据集分析使用Spark、Flink框架也能分析,但使用这样的大数据框架去分析小数据集显的过于笨重,有种大炮打蚊子的感觉,使用成本也有所增加。再比如,目前用于大模型与人工智能技术的Flowise低代码工具,其表达风格与传统低代码工具也有一定差别,如下:

    用户使用时需要再次熟悉这种风格的低代码工具。虽然成本不算太高,但我们知道用户的场景中,一定还少不了对结构化数据的应用处理需求,比如:让大模型处理结构化数据等。此时的Flowise又显的力不从心了。如果用户想解决所有这些问题,除了选用多个不同的低代码工具外就只剩自己开发了……

    如果有一款低代码工具,他能够统一解决小数据集、大数据集、结构化数据、非结构化数据的所有相关问题,能极大的节省使用者的学习成本,使用者不必在焦虑于不断出现的如Spark、Flink、Tensorflow、Pytorch、LangChain等各类技术,而是更聚焦数据科学的应用,岂不是更好?

    这就是笔者与团队梦想开始的地方。笔者将在下一篇文章中介绍我们梦想的低代码工具的样子。好奇的读者也可以先看看笔者有关HuggingFists的文章和视频。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHCE9学习指南 第20章 计划任务

有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种:一个是at计划任务,另一个是crontab计划任务。 下面我们分别来看这两种计划任务的使用。 20.1 at at计划任务是一次性的,到了指定的时间点时就开始…

44 C++ 进程线程的基本概念-并发,进程,线程,可执行程序的基本概念

一 并发,进程,线程的基本概念和综述 1 并发 两个或者更多的任务(独立的活动)同时发生,以提高性能 一个程序同时执行多个独立的任务。 在单核CPU的计算机上,某一个时刻只能执行一个任务,那么…

mac图片格式转换软件有哪些?推荐6个实用软件

mac图片格式转换软件有哪些?在数字时代,图片格式的转换已成为我们日常工作中不可或缺的一部分。对于Mac用户来说,选择一款高效、便捷的图片格式转换软件尤为重要。本文将为你介绍几款备受推崇的Mac图片格式转换软件,让你轻松应对各…

MySQL 5.7.35下载安装使用_忘记密码_远程授权

文章目录 MySQL 5.7.35下载安装使用_忘记密码_远程授权MySQL下载地址mysql安装点击安装,最好以管理员身份运行选择自定义安装选择64位勾选启动自定义产品执行点击同意点击下一步点击执行下一步配置数据库端口号设置登录密码,如果密码忘记,下面…

最新PyCharm安装详细教程及pycharm配置_pycharm安装教程

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads,进入二级页面,选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…

CMake入门教程【高级篇】管理MSVC编译器警告

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.什么是MSVC?2.常用的屏蔽警告3.MSVC所有警告4.target_compile_options用法5.如何在CMake中消除MSVC的警告?6.屏蔽警告编写技巧

Grafana Loki 日志传输工具

有各种不同的工具支持传输日志到Loki,有Grafana开发和第三方开发的工具。 Grafana 开发的工具: Grafana Agent Grafna 技术栈推荐客户端,支持收集度量、日志、跟踪和持续性能分析的遥测数据,跟Prometheus、OpenTelemetry、Graf…

Golang 四数相加 leetcode454 map哈希表

四数相加 leetcode454 本题如果直接进行四次for循环,则时间复杂度为O(N^4),超出运行时间限制。 因此我们这里使用两个分别的for循环进行遍历,则时间复杂度为O(N2N2). / 使用两遍for循环 func fourSumCount(nums1 []int, nums2 []int, nums3 []int, num…

MySQL自动备份脚本

MySQL自动备份脚本 mysqldump命令将数据库中的数据备份成一个文本文件,表的结构和数据将存储在生成的文本文件中 基本语法 备份一个数据库下的多个表 # 备份一个数据库下的多个表# username表示用户名# pwd表示密码# localhost为数据库地址# dbname表示数据库名称# …

如何使用css隐藏掉滚动条

1.解决方案 在滚动元素上再包裹一个父元素,然后,该元素添加如下代码: (注:PC端浏览器滚动条为8px)使元素偏移原来位置8px,目的就是将滚动条区域移动到父元素边框外面,然后&#xff…

PFA试剂瓶——实验室存储运输化学试剂样品容器

PFA是一种高性能的塑料材料。它是一种热塑性塑料,由全氟化,聚合物制成,具有高度的化学稳定性性。由于其优异的性能,PFA被广泛应用于多个领域,尤其是作为存储和运输各种化学试剂的容器,耐受-200℃至260C的温…

云流量回溯的工作原理及关键功能

云计算和网络技术的快速发展为企业提供了更灵活、高效的业务运营环境,同时也引发了一系列网络安全挑战。在这个背景下,云流量回溯成为网络安全领域的一个关键技术,为企业提供了对网络活动的深入洞察和实时响应的能力。 一、 云流量回溯的基本…

管理团队铁三角之责权利

一、前言 自从有了管理学之父德鲁克,管理的理论基本也可以被愿意学习学习的人学习的七七八八。没有理论的管理往往是实践摸索出来的,有的人管的好,有的人管的水平一般般。但是至于管理上的失败,没有多少管理者愿意承认是自己的责任,一般都是推卸给别人。博主在社会上混迹…

UTONMOS:探索元宇宙,开启未来游戏新篇章

在元宇宙的世界里,游戏不再只是消遣,而是一个全新的互动世界,等待你来探索! 逼真的虚拟现实技术,让你沉浸在充满想象力的游戏世界中,体验前所未有的刺激和乐趣。 与来自全球的玩家互动交流,结…

CodeWave智能开发平台--03--目标:应用创建--09供应商详情页面下

摘要 本文是网易数帆CodeWave智能开发平台系列的第13篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,实现一个完整的应用,本文主要完成09供应商详情页面下主营产品展示及权限管理 CodeWave智能开发平台的13次接触 CodeWave参考资源…

国标28181平台的手机视频监控客户端的电子地图功能对比

目 录 一、手机客户端 1、概述 2、具体功能简述 二、电子地图功能 1、经纬度定位 2、附近设备 3、实时浏览功能 4、录像回放 5、缩放功能 三、手机web客户端和CS客户端上的电子地图功能对比 1、对比表 2、测距(PC客户端功能) 3…

2. Presto应用

该笔记来源于网络,仅用于搜索学习,不保证所有内容正确。文章目录 1、Presto安装使用2、事件分析3、漏斗分析4、漏斗分析UDAF开发开发UDF插件开发UDAF插件 5、漏斗测试 1、Presto安装使用 参考官方文档:https://prestodb.io/docs/current/ P…

52.介绍AOP有几种实现方式

52.介绍AOP有几种实现方式 Spring 1.2 基于接口的配置:最早的 Spring AOP 是完全基于几个接口的,想看源码的同学可以从这里起步。Spring 2.0 schema-based 配置:Spring 2.0 以后使用 XML 的方式来配置,使用 命名空间 <aop ></aop>Spring 2.0 @AspectJ 配置:使…

MySQL的三种存储引擎 InnoDB、MyISAM、Memory

InnoDB 1). 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎&#xff0c;在 MySQL 5.5 之后&#xff0c;InnoDB是默认的MySQL 存储引擎。 2). 特点 DML操作遵循ACID模型&#xff0c;支持事务&#xff1b; 行级锁&#xff0c;提高并发访问性能&#xff1b; 支持外键F…

LeetCode255.用队列实现栈

题目传送门&#xff1a;Leetcode255.用队列实现栈 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压…