计算&AI •
991 引用 •
1070 回帖 •
471 关注
博客
关注
-
SQL 对关联的定义过于简单,就是两个表做笛卡尔积后再过滤,在语法上写成 A JOIN B ON …的形式。这样笼统处理多种关联,不体现关联运算本质,书写和优化都困难。 SPL 重新定义了关联 ..
-
业务数据经常存在层次关系,比如订单包含日期、客户和订单明细,订单明细又包含价格、数量、产品,产品则包含名称和分类。 json 的可嵌套结构很适合描述这种关系,比如订单数据: [ { 'orde ..
-
学生成绩表 score 的示例数据如下: [图片] 《下载测试数据》 1、统计各科前 3 名 统计结果要如下展示,每个名次一行,每个学科一列,并列名次的多人用逗号连结: [图片] 计算结果的格 ..
-
SQL 中的去重计数 COUNT DISTINCT 一直比较慢。去重本质上是分组运算,需要把遍历过的分组字段值都保持住,用于后续的比对。结果集太大时,还要把数据写到硬盘上做缓存,性能低下。 如 ..
-
在数据分析应用中,数据库多表关联的 SQL 语句很复杂,JOIN 性能也不理想,多表往往会被整合成宽表。比如图中订单表和多个维表就可能会被转换为宽表: [图片] 但是,宽表也存在很多问题,比如 ..
-
数据分析经常出现跨行计算,比如比上期、比同期、移动平均等等。针对有序数据集实现跨行计算,会涉及集合相邻成员引用的问题。 比如某商家某年 12 个月的销售额已经按月份次序准备好,现在要计算最大月 ..
-
Java 计算 csv 文件的代码太麻烦,借助数据库又会导致架构复杂。esProc 提供了 JDBC 驱动和计算类库,可以在 Java 中嵌入 SPL 语句,将 csv 文件当数据表直接查询, ..
-
基本常规运算 这类任务是指查询、排序、关联、分组汇总等基本运算,可以以此了解SPL的基础知识,供初次接触SPL的用户快速入门,已经了解过SPL的用户可以跳过这部分。 例1 :列出所有不重复的部 ..
-
SQL 中的去重计数 COUNT DISTINCT 一直比较慢。 去重本质上是分组运算,需要把遍历过的分组字段值都保持住,用于后续的比对。结果集太大时,还要把数据写到硬盘上做缓存,性能低下。 ..
-
12 按规则扩展出多条记录 这类任务是指按分隔符拆分字符串、按区间展开日期、按固定数量等规则,将一条记录扩展成多条记录。SQL要用JOIN语句+嵌套结构或递归结构来实现,代码复杂易错。 例1 ..
-
我们以订单表为例实现 esProc SPL 数据外置,提速常规过滤及分组汇总计算。 [图片] 我们使用 SPL 的 ETL 工具来生成脚本,实现数据的转储。在 [SPL 安装目录]\esPro ..
-
润乾报表可以通过esProc数据集,直接调用非企业版集算器脚本文件,如果需要调用企业版集算器脚本文件,则需要部署内嵌的QJDBC,具体步骤如下: 1. 部署企业版 jar 从 官网下载安装集算 ..
-
由于业务需要将数据按年存储在两个结构相同的数据库中,要进行数据统计就会涉及多库混合计算。通过数据库或硬编码实现都比较麻烦,借助 esProc 可以简化这类运算。 数据 orders 表结构: ..
-
类似订单和明细表这样的主子表关联比较常见,在 SQL 中,这种关联用 JOIN 实现,在两个表都很大的情况下,常常出现计算速度非常慢的现象。 [图片] 如果预先将主子表都按照主键有序存储,就可 ..
-
7 各种行列转换和逆转换 这类任务经常在报表输出时出现,难点在于转换后的列名是动态未知的。大部分SQL转置时必须写出列名,通常要改用存储过程动态生成列名,再动态执行SQL,结构很复杂。 例1 ..
-
2 和次序位置有关的运算 这类任务是指基于序号的、与位置相关的计算。SQL缺乏天然序号,一般要先造出序号再进行计算,代码比较难写,涉及分组后有序计算时,难度将会更大。 例1 :每隔N 个订单抽 ..
-
用 SPL 查文件也很简单,而且能处理各种文件格式。 计算用例 查询目标 基于 orders1.csv(有标题),统计 2024 年各类订单状态的订单金额 SPL 语法 编写脚本 A 1 =T ..
-
数据库中,大主子表之间进行 EXISTS 计算往往会导致较差的性能。这样的计算本质上是在做连接,如果能预先将主子表都按照主键有序存储,就可以使用有序归并算法有效提速。这种算法只需要对两个表依次 ..
-
数据表枚举字段的取值是有限几种值,针对枚举字段 f 的过滤条件写成 f =v1 or f=v2 or…或者 f !=v1 and f !=v2 and…,也可能写成 in 或者 not in。 ..
-
数据量大或者数据库繁忙都会导致数据库查询变慢,这时将数据用 esProc 导出存成文件再计算可以大幅提升性能。 数据与用例 MySQL 数据库有 orders_30m 表存储着历年的订单数据, ..
-
今天,企业的数据来源已经从原来的“就几张表”发展到数据库、文件、接口、流式数据、对象存储、NoSQL……五花八门。能不能搞定“多数据源混算”,已经成了数据计算技术的重要标准之一。 说起多源混算 ..
-
前言 在数字化转型持续加速的背景下,企业越来越多地将业务逻辑以服务化方式部署至云端。阿里云函数计算(Function Compute,简称FC)作为一种无服务器计算平台,屏蔽了底层资源运维的复 ..
-
数据分析或报表类应用中有时会遇到各类复杂的 SQL,嵌套了多层的、关联了自己的、动态转置的,比如: From SQL to SPL:Create columns from distinct v ..
-
4 与成员次序有关的分组 与简单的等值分组不同,有序分组是指保持数据有序的情况下,比较相邻的数据以分组,或满足条件以分组的任务。SQL不支持有序分组,通常要用打标记的办法间接实现,代码很复杂, ..
-
这一篇介绍主键关联的提速。 主表订单表和子表明细表的关联就是主键关联。SQL 中,这种关联仍用 JOIN 实现,在两个表都很大的情况下,常常出现计算速度非常慢的现象。 如果预先将主子表都按照主 ..