从高校中走出的 Apache 顶级项目 —— IoTDB 核心成员黄向东

2023-05-16

本期访谈嘉宾:黄向东

Apache 顶级开放源代码项目 IoTDB(物联网数据库)核心成员、2021 年开源先锋、清华大学软件学院助理研究员。


Q:简单介绍一下 Apache IoTDB

IoTDB (Database for Internet of Things,物联网数据库)是一体化收集、存储、管理与分析物联网时序数据的软件系统,由清华大学软件学院发起并研发,2018 年捐赠给 Apache 软件基金会,并于 2020 年毕业成为顶级项目。 

IoTDB 关注的是工业物联网场景下的时序数据,这类数据近几年处于一种爆发式增长的模式,受关注度增长在 DB-Engines 数据库排名网也稳居第一。自 2016 年起,实验室投入大量研发力量,但在做的过程中发现,在产品体验、功能设计上难免与用户的实际需求有偏差,在后期的项目维护、推广上,也存在很多问题。如何解决高校和用户离得远,并把学生的创造力变成产品化的生产力,是我们 2018 年决定开源并进入 Apache 软件基金会的原因之一。此外,让全世界用户能够最简单、便捷地享受清华的科研成果对工业物联网行业带来的升级与提升,也是我们决定开源的一大因素。

Q:Apache IoTDB 目前的发展情况及后续的规划

我们通过自研底层存储文件结构、内存中的 memtable 结构、pipiline(管道式)的刷新机制,以及面向时序数据优化的 LSM 树数据结构,使 IoTDB 提供高效能写入性能。此外,针对工业用户在工业互联网场景下对时序数据的访问和分析需求,IoTDB 也提供了丰富的查询和分析的功能。 

进入 Apache 之后,Christofer Dutz(Apache 2022 新任董事)帮我们做了自动化 CD(持续交付)、项目规范化 Release、静态代码检测指导等。在项目质量提升的同时,也感受到了新加入 Apache 时的项目与工业级标准化产品之间的差距。

现在,经过和其他开源项目进行深度集成,IoTDB 形成了面向物联网数据的,从数据采集、存储、管理、分析、应用的全生命周期的物联网解决方案生态,满足工业物联网领域的海量数据存储、高速数据读取和复杂数据分析需求。国内很多中字头企业都在用 IoTDB,例如中车、中核、中核电、中航成飞等,另外像德国、美国的一些工业龙头也在对 IoTDB 进行验证和使用。 

目前,工业用户的应用诉求越来越多,而工业互联网场景和很多纯互联网场景存在差异。例如,工业互联网场景的参与角色跨越了端边云,端产生数据,边传输数据,云汇总全量数据。如何让端边云上的数据能协同的管理和使用起来,以及通过新的存储引擎实现新的查询架构设计让 IoTDB 的读写性能变得更高,并加强其工业语义的分析能力,这是 IoTDB 后期会继续发力的点。

Q:高校开源项目如何和产业结合落地?优势是什么?

企业做出来的开源大多来自生产实践,具有普遍性;而高校开源的出发点是其认为该技术很新颖、独创性较高,同时适用于很多用户及场景。相对而言,高校的技术创新性会更超前,对整个社会的软件技术含量有促进推动的作用,所以我非常期待高校做开源。 

高校的团队做开源,首先要清楚学校的规章制度,确保知识产权合规,并且做好代码开源后持续投入时间和精力维护的准备。在国内,如果一个高校的团队有 20 个人参与到同一个项目中,便已经是一个超大的团队了,但是对于一个产品研发来讲,20 人远远不够。然而,如果你的项目有技术含量、足够 open、实用性较高,就一定会吸引新的开发者参与项目,成为项目开发的生力军,从而弥补高校团队的不足。相对应的,团队一定要在服务用户的过程中多一些耐心和决心,不能因为用户提的问题科研含量较低,就觉得在他身上花时间是浪费时间。其实,真实的用户需求一旦被引导出来,是可以帮助团队把控科研方向、寻找落地功能点、增强项目稳定性的,这种开源模式对高校来说是很好的补充。 

虽然高校的团队一般都有很多渠道能够发声,包括在与国家部委合作项目中做推广宣传、参加一些较大的会议等。但即便如此,很多团队依然难以触及到大量的工业用户。但在开源模式下,因为用户会主动寻找合适的项目和技术,就恰好解决了高校如何获取用户实际需求的问题。

总之,在 IoTDB 开源的 4、5 年里,我们由衷感谢所有的 IoTDB 开源用户伴随我们一起成长。没有他们,就没有现在这个功能全面、性能优异、稳定可靠的 IoTDB。我们也期待继续为开源社区和用户们贡献更好的 IoTDB。

Q:高校如何培养开源人才?

通过开源对学生进行历练是非常好的一种模式。在整个开源过程中,学生会与不同的用户打交道。无论用户是否懂技术,这个过程都是对他们沟通能力的锻炼。此外,参与开源项目,对学生写代码的能力、用文字将自己所做之事描述清楚的能力,以及对书本上没涉及到的知识的学习吸收能力,都是一个很好的补充。

虽然深度参与开源项目会占据学生大量的时间做工程化,但学生们的实践能力可以因此得到很好的培养。等他们参与企业工作后,一就位就是老手的感觉,而不会像其他应届毕业生一样需要较长时间的培训。所以,即使仅仅从找工作的经历看,开源对学生的培养也是非常有好处的,尤其是国际化的开源社区,还会接触到一些国际用户和开发者,进一步拓宽他们的国际视野。 

Q:谈谈对形容社区里的学生为“流水的兵”的看法

确实有不少学生在毕业后便离开社区了。第一,高校一届一届地培养人才,帮助他们成长为企业的中坚力量,从人才培养和社会输出角度来看,就已经形成了一个正收益。第二,离开很可能只是暂时的。随着项目的应用场景越来越多,学生在工作中可能会涉及到相关的内容,有了结合点就很容易回归。此外,那些真正对开源感兴趣、实力强的人一般最终还是会留下的,他们往往会做起项目的 Maintainer,承担起带新人和帮助项目把控质量的角色,帮助项目可持续发展。

另外,即使有学生并没有回到 IoTDB,但是如果毕业后在其他开源项目里面变成了 Committer,我们会觉得很欣慰,因为这是对学生培养的一个成功。学生能在新项目中快速成为 Committer,相信一定跟他以前参与 IoTDB、了解开源及 Apache 社区的运转模式脱不开关系。所以我觉得流水的兵,流就流吧,只要为社会创造了财富,那就是值得的。 

在学校里,老师同学们在做项目或研究时会用到很多开源软件,但却很少有机会能真正参与到开源项目里。如果能参与到开源项目中,可能能为大家打开另外一扇窗,所以这里也想呼吁老师同学们参与开源、拥抱开源,为软件能有更好的发展共同努力。

Q:对在高校教育中加强开源文化建设的看法

开源热这件事确实热,但是我们学院院长曾提过一个观点是:谨防开源过热。大家到底是跟风追潮流?还是真的觉得开源协同创新是一个好的模式?是为了拿项目?还是真心认为对科研或对学生好?还是要扪心自问的。 

在高校教育中加强开源文化建设,我认为这件事情很重要,但是急不来。把开源做成有深度的课程是有难度的。现在高校里真正研究开源的人并不多,如果仓促的着手教材建设,可能不是一件好事;而企业的开源经验很多,但他们对于教材应该如何编写可能没有感性的认识。因此可能需要来自多个领域的人共同合作。

我想,可能能通过以下渠道:

第一,从讲座开始,逐步形成短期课程建设;

第二,邀请企业人士为高校的学生或老师做培训和教育;

第三,实践出真知。鼓励学生在课余时间多接触和参与开源,多做实践;

第四,相关的老师也参与到一线,通过时间积累和实践积累,把自己的开源经验组织成未来的课程或者一些更体系化的东西。

Q:对开源雨林的看法及建议

孤木难成林,我觉得开源雨林的名字很好啊!开源社区也一样,一个项目靠一两个英雄是不够的;站在整个软件行业来讲,一个开源项目也是不够的,一定是多个开源项目互相促进,互相集成,共同去服务,搭建一套完整的解决方案。开源项目或者开源社区本身应该多交叉,达到1+1>2的效果,所以我觉得开源雨林不管在国内还是国际上,都能起到非常正向的促进作用,非常有意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从高校中走出的 Apache 顶级项目 —— IoTDB 核心成员黄向东 的相关文章

  • Amazon EC2 - Apache 服务器重启问题

    当我运行这个命令时 sudo etc init d httpd restart 它给出以下错误 停止 httpd 失败 启动 httpd 98 地址已在使用中 make sock 无法绑定到地址 80 98 地址已在使用 make sock
  • 点击取消时 htpasswd 被绕过

    在我的 htaccess 中 我有以下代码 用于保存 admin 区域 如果我提供了错误的用户名密码 它会不断弹出正确的用户名 但如果我按取消 我可以看到我的限制区域 而不是加载错误页面 这是怎么回事 谢谢 AuthName Restric
  • 配置Apache将SSL客户端证书发送到后端服务器

    我想配置 Apache 以便它接收客户端证书 并将其传递到另一台服务器 我在用着 Windows 上的 Apache 2 0 65 后端服务器是基于 apache 的解决方案 IBM HTTP Server 我尝试了这个配置
  • 仅当未找到文件时才重定向请求?

    我希望有一种方法可以使用 mod rewrite 和 Apache 来做到这一点 但也许还有另一种方法可以考虑 在我的网站上 我为客户的网站重新设计版本设置了目录 如果网络根目录是 home blah www 客户端目录将是 home bl
  • Tomcat 托管具有多个 SSL 证书的多个虚拟主机

    例如 我有一台使用 Tomcat 7 托管多个网站的服务器 a abc com b abc com c def com d def com 使用tomcat的虚拟主机功能 因此它们各自可能属于不同的webapps文件夹 我们现在正在尝试为每
  • 为什么有人将(Apache mod_expires 参数)ExpiresByType 设置为“访问加 0 秒”?

    在审查答案时这个帖子 https stackoverflow com questions 9933012 how to use mod headers and mod expires to cache 我不明白为什么这里使用 0 秒作为最佳
  • 从 Apache 运行 python 脚本的最简单方法

    我花了很长时间试图弄清楚这一点 我基本上正在尝试开发一个网站 当用户单击特定按钮时 我必须在其中执行 python 脚本 在研究了 Stack Overflow 和 Google 之后 我需要配置 Apache 以便能够运行 CGI 脚本
  • PHP 强制 Apache 错误

    感谢这个论坛 我了解到 PHP header 函数实际上并不将 header 发送到 Apache 服务器 而只发送到客户端 我想要做的是生成错误 500 并让 Apache 显示其相应的页面 有办法强制吗 提前致谢 还有 Allez le
  • 未经编辑,无法在 pptx 中的 BarChart 中查看 Apache POI 更新的数据值

    我有一个 pptx 模板 它只有一张用于测试目的的幻灯片 该幻灯片有一个简单的条形图 我可以通过在 pptx 文件上双击条形图来编辑条形图 并且可以更改 Sheet1 条形图数据表 中的值 并且我可以立即在条形图中看到更改 现在 我尝试使用
  • Ubuntu 12.04 上的 PHP 从 5.3 升级到 php 5.6

    我正在按照本教程将 php 从版本 5 3 升级到 5 6 http phpave com upgrade php 53 to php 56 on ubuntu 1204 lts http phpave com upgrade php 53
  • Tomcat如何通过IP地址限制访问?

    有谁知道Tomcat是否可以通过IP地址限制对某些应用程序的访问 例如Apache的 htaccess 你添加一个Valve to the Context in context xml 具体来说 org apache catalina va
  • 如何找到 httpd.conf 文件所在的位置?

    如何找到 apache PHP 上 httpd conf 文件的路径 我不知道我的脚本是否会在Windows apache或Linux中运行 我需要知道在哪里可以找到这个文件 以便从那里找到参数 谢谢 我认为它没有接触 PHP 跑步http
  • 在读取正文之前拒绝 HTTP 请求

    我正在开发一个网站 用户需要上传一些非常大的文件 该网站是用 PHP 编写的 在某些情况下 我想根据标头拒绝文件 理想情况下 我想在收到标头后立即拒绝请求 而不读取正文 如果标头足以表明该文件应被拒绝 则没有理由读取 200M 的文件 此外
  • PHP 启动:无法加载动态库 php5.4.3/ext/php_ffmpeg.dll 不是有效的 Win32 应用程序

    再会 我尝试在 Windows 7 计算机上安装 dll 文件 php ffmpeg 但不断收到此错误 29 Jan 2013 11 37 00 UTC PHP Warning PHP Startup Unable to load dyna
  • 使用 WSGI 在 Windows XAMPP 中设置 Python 路径

    我正在 Webfaction 上设置实时服务器的开发版本 在本地计算机上的虚拟 Apache 服务器环境 运行没有任何错误 中运行 Django 应用程序 XP 使用 Python 2 6 运行 XAMPP Lite 我可以提交更改通过 G
  • Capistrano 和 XSendFile 配置

    我正在尝试使用 Apache 2 2 Passenger 4 0 59 和 XSendFile 0 12 配置 Rails 生产服务器 应用程序通过 Capistrano 部署 部署的应用程序生成 可能很大 PDF Rails root t
  • 使用 SERVER_NAME 时出现 Flask 404

    在我的 Flask 配置中 我将 SERVER NAME 设置为 app example com 之类的域 我这样做是因为我需要使用url for with external网址 如果未设置 SERVER NAME Flask 会认为服务器
  • 无法更改 Xampp 中的 Apache 端口号

    我刚刚下载了Xampp服务器xampp win32 1 8 2 0 VC9 zip http www apachefriends org en xampp windows html 641文件 Windows 并尝试启动 apache 服务
  • AH10411 错误:在 apache mod_rewrite 中管理空格和 %20

    我今天更新了 Apache 到 2 4 56 1 并且加载了 htaccess过去有效的重写现在出现了 AH10411 错误 与查询中的空格有关 我正在努力寻找 适当 的解决方案 用户单击一个链接 例如 a href FISH 20J123
  • 如何在MAMP中设置环境变量?

    如何在 MAMP 版本 3 3 中设置环境变量 我可以在我的 PHP 应用程序中使用它 我已经更新了 Applications MAMP Library bin envvars and envvars std file并添加以下行 Lice

随机推荐

  • github,dockerhub下载文件

    1 打开github xff0c dockerhub代理页面 xff0c 见菜单点击可进入dockerhub代理页面 github下载代理 2 把需要下载的文件的url复制到输入框 3 常用的脚本命令 git clone git clone
  • C++ 开源程序库

    1 系统和网络编程库 xff1a ACE 除了ACE之外 xff0c 还有很多系统和网络编程方面的程序库 比如在线程库方面 xff0c 还有ZThread boost thread xff0c 如果放大到C C 43 43 领域 xff0c
  • 360笔试题2013

    编程题 传教士人数M xff0c 野人C xff0c M C xff0c 开始都在岸左边 xff0c 船只能载两人 xff0c 传教士和野人都会划船 xff0c 当然必须有人划船 两岸边保证野人人数不能大于传教士人数 把所有人都送过河 xf
  • 搜狗笔试题

    搜狗 xff1a 1 xff0c 有n n个正方形格子 xff0c 每个格子里有正数或者0 xff0c 从最左上角往最右下角走 xff0c 只能向下和向右走 一共走两次 xff0c 把所有经过的格子的数加起来 xff0c 求最大值 且两次如
  • [INS-20802] Oracle Net Configuration Assistant failed

    INS 20802 Oracle Net Configuration Assistant failed 在安装Oracle 11g R2时出现了该错误提示 以前安装的时候没有碰到过类似 的错误 原来是64bit和32bit系统兼容性的问题
  • 自定义注解,打造自己的框架-下篇

    2019 12 04 22 53 52 文章目录 结构声明注解声明注解处理器处理注解逻辑给使用者提供调用方法使用 该系列介绍自定义注解 xff0c 完成如下功能 64 BindView 代替 findViewById 64 ClickRes
  • 嵌入式STM32深入之RTOS编程

    RTOS编程 一 前言二 RTOS的概念 xff08 一 xff09 用人来类比单片机程序和RTOS1 1 我无法一心多用1 2 我可以一心多用 xff08 二 xff09 架构的概念 xff08 三 xff09 常见的嵌入式操作系统 xf
  • 坐标系变换

    slam 基础之机器人学中的坐标转换学习总结 rot z 90 ppipp1109的博客 CSDN博客 https www youtube com watch v 61 4Y1 y9DI Hw amp t 61 538s 1 平移和旋转 3
  • 如何安装inf文件

    方法1 运行RunDll32 advpack dll LaunchINFSection YOUINF inf DefaultInstall 方法2 修复右键安装 操作步骤如下 xff1a 打开我的电脑 xff0c 工具 菜单中的 文件夹选项
  • 无人机采集图像的相关知识

    1 xff0e 飞行任务规划 一般使用飞行任务规划软件进行飞行任务的设计 xff0c 软件可以自动计算相机覆盖和图像重叠情况 比如ArduPilot http ardupilot com 和UgCS http www ugcs com 是两
  • 无人机编程donekit及通讯(三)——仿真

    1 启动SITL 启动STL cd courseRoot apm ardupilot sim vehicle py v ArduCopter console map 飞机起飞降落 mode GUIDED arm throttle takeo
  • DroneKit(四)——无人机协同

    coding utf8 from dronekit import connect VehicleMode LocationGlobalRelative APIException import time import exceptions i
  • 看这篇就够了——opencv与libopencv与cv_bridge的安装与使用

    一 基本关系 opencv OpenCV的全称是Open Source Computer Vision Library xff0c 是一个跨平台的计算机视觉处理开源软件库 xff0c 是由Intel公司俄罗斯团队发起并参与和维护 xff0c
  • Linux下更改oracle客户端字符集和服务端字符集

    from http blog csdn net chid article details 6166506 Linux 下更改 oracle 客户端字符集和服务端字符集 1 Linux 下更改 oracle 客户端字符集 xff0c 即设置环
  • C语言书籍推荐

    C 语言书籍推荐 宗旨 xff1a 技术的学习是有限的 xff0c 分享的精神是无限的 一 基础 1 C语言入门很简单 零起点学通C语言 xff08 多媒体范例教学 xff09 C语言从入门到精通 2 C程序设计语言 第2版 新版 C程序设
  • Jetson配置realsense D435i SDK以及realsense-ros

    一 命令安装 SDK sudo apt install librealsense2 realsense viewer 测试 realsense ros sudo apt get install ros ROS DISTRO realsens
  • 工程(十一)——NUC11+D435i+VINS-FUSION+ESDF建图(github代码)

    博主的合并代码 git 64 github com huashu996 VINS FUSION ESDFmap git 一 D435i深度相机配置 1 1 SDK 43 ROS 参考我之前的博客 xff0c 步骤和所遇见的问题已经写的很详细
  • 从零入门激光SLAM(八)——ROS常用消息

    大家好呀 xff0c 我是一个SLAM方向的在读博士 xff0c 深知SLAM学习过程一路走来的坎坷 xff0c 也十分感谢各位大佬的优质文章和源码 随着知识的越来越多 xff0c 越来越细 xff0c 我准备整理一个自己的激光SLAM学习
  • 嵌入式软件开发,快五年,没有成就感,快迷失自己了

    嵌入式软件开发 xff0c 快五年 xff0c 没有成就感 xff0c 快迷失自己了 看到了这个的问题 xff0c 其实这个问题何尝不是很多软件开发人员的困惑呢 至少我自己如此 在任何公司 xff0c 个人永远就是一枚螺丝钉的角色 当公司的
  • 从高校中走出的 Apache 顶级项目 —— IoTDB 核心成员黄向东

    本期访谈嘉宾 xff1a 黄向东 Apache 顶级开放源代码项目 IoTDB xff08 物联网数据库 xff09 核心成员 2021 年开源先锋 清华大学软件学院助理研究员 Q xff1a 简单介绍一下 Apache IoTDB IoT