byzer-lang icon indicating copy to clipboard operation
byzer-lang copied to clipboard

Byzer (former MLSQL): A low-code open-source programming language for data pipeline, analytics and AI.

Results 131 byzer-lang issues
Sort by recently updated
recently updated
newest added

在一个复杂的计算中,经常会出现这种情况,经过一个复杂的脚本计算的视图,在后续使用中重复计算问题。因此,如何在一个复杂的MLSQL脚本中快速定位哪些视图发生了重复计算,对与性能调优十分重要。

用户可以用MLSQL语言编写Lib库,从而实现强大生态的构建,也能提供海量示例。 ## 打包格式 MLSQL Lib库未来会支持Github/Jar包两种方式分发。 1. Github 主要用于公有分发,构筑良好的生态。 2. Jar包主要用于企业私有分发,保证源码安全。两者会共享相同的目录结构。 ## Lib目录格式 1. 根目录必须包含package.json ## 使用范例 ### github 使用范例 ```sql -- 导入Lib库,指定commit id, 并给库取别名 -- 第一次import 根据网络情况可能会很慢 include lib.`github.com/allwefantasy/mlsql-example` where...

## 背景介绍 MLSQL对Ray语言层面的支持主要在这个实现类里: `tech.mlsql.ets.Ray`。 在执行Python脚本时,会占用一定数量的 task作为Data Server,直到Python读取数据完成后才会释放。假设有以下术语: 当前剩余资源:leftResource 当前被读取的表分区数: targetLen 我们会根据当前剩余资源调整表的分区数,避免表占用所有task而无法执行下一步操作。 基本逻辑如下所示: ```scala if (leftResource / 2 =2。 为了保险起见,如果用户配置的总资源数亦或是当前剩余资源数少于4,那么我们应该直接报错提示用户。 此外,我们也应该提供参数允许用户可以设置data server 能够使用的分区数。譬如如下方式: ``` set __data_server_num__ = "4"; !ray on mockTable...

在已经输入了完整的参数名称后仍然可能给出提示,如图:

The request to MLSQL engine can be async and once the request finished then we will callback the caller with the parameter `callback`. However, the implementation of callback for now...

MLSQL Console在数据库里会保存最多不超过5000条的数据的一条记录,不过这个记录很大,会超出MySQL默认的 package大小。使得用户需要手动修改MySQL配置。我们需要缩小预览规模,并且允许用户在设置里进行设置。

2.1.0

在MLSQL中,我们希望数据,算法参数,模型,以及最后效果都可以版本化,从而保证任何一次实验都可重复。一般通过一些辅助系统,我们通常可以较为方便的做到算法参数以及模型效果的保存,从而对实验具有的一定管理能力。但是随着数据的实时性越来越好,这意味着数据变化的可能性越来越高。我们需要随时能够知道我们使用什么算法,在什么参数条件下,对什么数据进行训练,最后得到什么效果。 通过数据湖的time traval功能,我们只要将实验版本号记录起来,就可以随时回滚到某个实验版本中,从而避免手动管理大量实验数据的版本。

MPIP

深度学习一般而言都需要经过N个epoch的训练才能收敛,所以需要多次读取同一个数据,而且读取的过程又是按batch读的。而通常spark的数据一般不能反复读取。如果我们训练的过程中常需要将数据保存在运行python训练进程的机器上,MLSQL需要做如下几点保证: 1. 数据保存成文件,按batch进行存储,该batch值要大于或者等于用户后续使用的batch_size.最好是整数倍。 2. 读取文件的过程中一次读取batch_size的整数倍,并且切分成batch_size给用户。 3. 用户训练完毕后,要能够保证文件被及时的清理掉,让用户手动清理是不合理的。 在GPU服务器上,其实我们会经常遇到读取文件的速度还没batch训练的速度来的快,所以这个功能还是很重要的。 pyarrow现在初步来看能够很好的满足诉求,可以尝试使用pyarrow来实现。

for new contributors
Difficulty:High

1、如果主表有分区,关联的表也存在分区,join临时表产生几个分区? 测试结果:与表没有关系,与spark.sql.shuffle.partitions参数设置有关,默认200个分区 结果就会生成200个分区,表的数据量小的话,很多分区元素个数是0 可以合并相临的 Partition,减少产生的分区数据如下设置 set spark.sql.adaptive.enabled=true where type="conf"; 2、load jdbc方式:默认生成1个分区,如果要提高性能,需要设置分区 partitionColumn="ID" --分区字段,字段类型:numeric、date、timestamp and numPartitions="20" --生成分区数量,根据自己数据实际情况设置 and lowerBound="1" --分区开始最小值,根据自己数据实际情况设置 and upperBound="10000" --分区开始最大值,根据自己数据实际情况设置 原理会根据配置生成多个where条件,并行抽取数据 每个分区的数量:(10000-1)/20 的量 如果采用自定义分区,一定要注意,不在区间内的数据,会获取不到 and prePtnArray = "age=...