社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

Twitter的中国人,机器学习玩SQL,牛逼大了。。。

飞总聊IT • 1 年前 • 126 次点击  

关注飞总聊IT,了解IT行业的方方面面。


这事情,发生的时候挺早的,但是我最近才听说。


具体来说,可以看一下这篇文章:


https://blog.x.com/engineering/en_us/topics/insights/2021/forecasting-sql-query-resource-usage-with-machine-learning


文章讲的是Twitter的中国人搞的一个功能,通过对SQL语句进行机器学习,可以学习出来,哪些SQL语句需要多少CPU的时间,会消耗多少memory。


简单来说,这里用了机器学习的方法,把SQL语句变成数字串,然后,把使用多少CPU进行分类,分成短中长三类,内存也是。这样的数据集通过机器学习一下以后,就可以得到一个模型。


后面就可以用这个模型,来对新进来的SQL文本进行预测,看看新的SQL Query需要多少CPU,用多少memory。


数据层面,训练数据只需要SQL语句,然后用了多少CPU和多少内存就行了,因为是训练两个模型,所以我估计预测CPU的模型不需要内存信息,反之亦然。


根据作者的说法,precision和recall都相当的不错。


有了这个预测以后,就可以在SQL查询进来的时候,根据SQL语句决定到底应该去什么cluster跑了,查询快的给专属快查询的cluster,慢的就去慢的。


我当然不是什么机器学习的专家。我对机器学习懂的程度,大概也仅仅限于我上课学的那么一点。


但是关于能不能够只用SQL语句的文本,就可以预测出这个SQL大概需要多少的CPU time,要用掉多少memory这件事情,大概率来说,应该成功率比较低才对。


可能作者做的是分类,分类的话给与的模糊空间比较大,所以会准确一点。


但是我们知道现实世界里面,往往会有很多ETL的sql是重复跑的,所以一模一样的SQL出现很多次也很正常。


那么这些SQL就会同时出现在training set, validation set和test set里面,除非系统进行了dedup。但是我想从我对文章的理解,显然是没dedup的。


所以信息明显是已经在数据中给互相泄露出去了,最后到底学出了什么东西,我是真的看不懂了。


我感觉自己有点孤陋寡闻了。原来机器学习还可以这样用,最后还能达到这么好的效果。


就我简单朴素的理解来说,这个项目要想成功,真的需要有很多很多的假设条件,而我的确不知道,这些假设条件们分别都是什么。


但是,它貌似就真的很成功,作者也对这项目很骄傲。所以,真的是我孤陋寡闻了,我实在是没想到,这么用机器学习的。


作者们开源出来了这个项目,我很好奇的事,不知道到底有多少人在生产系统里真的用了这个开源项目。要是有人知道的话,欢迎给我留言。


不过我看了一下LinkedIn,作者似乎已经在Twitter被马斯克的大裁员中被裁了,然后迅速的去了Alluxio。也不知道这个开源项目还有没有人在维护


我最近写的专栏,讲职场的故事,有兴趣的可以订阅,有很多人说学到了经验,不喜欢的一天内可以退款


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169262
 
126 次点击