并发数据修改冲突 在并发写入Iceberg表时,通常会遇到两类冲突:并发修改数据冲突、乐观锁并发提交冲突。本文介绍并发数据修改冲突。 当出现以下并发作业时,可能会产生数据冲突,从而导致作业失败: 对同一分区数据并发执行DML操作,例如对同一分区执行Update/Delete/Insert
java.sql.ResultSetMetaData java.sql.ResultSetMetaData是对ResultSet对象相关信息的具体描述。 表1 对java.sql.ResultSetMetaData的支持情况 方法名 返回值类型 支持JDBC 4 getColumnCount
JSON/JSONB函数 JSON/JSONB函数表示可以用于JSON类型数据的函数。 除函数array_to_json和row_to_json外,其余有关JSON/JSONB函数和操作符仅8.1.2及以上集群版本支持。 array_to_json(anyarray [, pretty_bool
EXTRACT EXTRACT(field FROM source) extract函数从日期或时间的数值里抽取子域,比如年、小时等。source必须是一个timestamp、time或interval类型的值表达式(类型为date的表达式转换为timestamp,因此也可以用)。
乐观锁并发提交冲突 乐观锁并发提交冲突的产生原因:多个修改作业(包括Insert、Update、Delete、MergeInto以及表服务操作)同时在LakeFormation上提交导致的并发提交冲突。例如: 上图中,Transaction1和Transaction2分别为两个DML
数据库对象尺寸函数 pg_table_size(regclass) 描述:获取表大小,计算表目录下所有文件的总大小。 返回值类型:int64 pg_table_files(regclass) 描述:获取表大小,返回表目录下所有文件的路径和大小信息。 返回值类型: file_path
date_part date_part date_part函数是在传统的Ingres函数的基础上制作的(该函数等效于SQL标准函数extract): date_part('field', source) 这里的field参数必须是一个字符串,而不是一个名字。有效的field与extract
date_format date_format(timestamp, fmt) date_format函数将日期参数按照fmt指定的格式转换为字符串。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SELECT date_format
Scalar UDF类型 对于DataArtsFabric DataFrame,目前提供Python端可以注册的Scalar UDF类型如下: 表1 Scalar UDF类型 Scalar UDF类型 输入类型 是否向量化 适用场景与特点 python Python标量值 否 逐行处理数据
time_format time_format(time, fmt) 描述:time_format函数将日期参数按照fmt指定的格式转换为字符串。与date_format函数类似,但格式字符串只能包含小时、分钟、秒和微秒的格式说明符,如果包含其他说明符则会返回NULL值或0。 返回值类型
几何类型转换函数 box(circle) 描述:将圆转换成矩形。 返回类型:box 示例: 1 2 3 4 5 SELECT box(circle '((0,0),2.0)') AS RESULT; result
数字操作符 + 描述:加 示例: 1 2 3 4 5 SELECT 2+3 AS RESULT; result -------- 5 (1 row) - 描述:减 示例: 1 2 3 4 5 SELECT 2-3 AS RESULT; result -----
直接使用带Scalar UDF的DF示例 场景描述 在大数据处理场景中,用户在使用DataFrame进行数据处理时,常常需要通过用户自定义函数(UDF)来实现复杂的数据计算逻辑。然而,当前系统中UDF的注册与调用耦合在一起,用户无法在注册后单独查看或删除已注册的UDF,这在团队协作开发或动态管理
二进制字符串函数和操作符 SQL定义了一些二进制字符串函数,这些函数使用关键字而不是逗号来分隔参数。另外,DataArtsFabric SQL提供了函数调用所使用的常用语法。 octet_length(string) 描述:二进制字符串中的字节数。 返回值类型:integer 示例
网络地址函数 函数abbrev,host,text主要是为了提供可选的显示格式。 任何cidr值都能以显式或者隐式的方式转换为inet值,因此能够操作inet值的函数也同样能够操作cidr值。inet值也可以转换为cidr值,此时inet子网掩码右侧的所有位都将转换为零,以创建一个有效的
注册Scalar UDF概览 注册Scalar UDF的含义是在后端数据库包含指定的UDF,并在注册后返回在ibis DataFrame中可以操作的UDF算子。 注册Scalar UDF返回的值是DataFrame中的一个UDF算子。后续这个UDF算子可以被多个DataFrame表达式多次调用
文本检索函数 get_current_ts_config() 描述:获取文本检索的默认配置。 返回类型:regconfig 示例: 1 2 3 4 5 SELECT get_current_ts_config(); get_current_ts_config ---------
Fabric DataFrame建立连接参数 使用ibis.fabric.connect接口建立连接,可以传入的参数如下: 表1 ibis.fabric.connect连接参数 参数 含义 类型 默认值 endpoint 指定连接的端点。 str | None None endpoint_id
Scalar UDF直接操作语法 在注册和使用分离的场景下,为使用者提供Scalar UDF的直接操作语法,使用者只需要知道UDF名称(name)、所在的数据库名称(database),就可以直接操作使用UDF。以下操作依赖backend会话对象进行。 表1 Scalar UDF直接操作语法
时间/日期操作符 用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。 比如下面示例没有明确数据类型就会出现异常错误。 1 SELECT date '2001-10-01' - '7' AS