云日志服务 DSL(Domain Specific Language)是云日志服务数据加工使用的与Python兼容的脚本。DSL基于Python语言开发,提供一百多个内置函数来简化数据加工任务。
通过DSL自由编辑函数,对各种逻辑进行复杂组合,可以满足大部分数据加工场景。
语法
DSL可视为Python的子集。除基本的数据结构与表达方式外,语法规则是以函数方式进行编排。
数据结构
Python语法 |
标准模式 |
数字、字符串、布尔 |
支持。不支持"""形式字符串。 |
元组、列表、集合、字典 |
支持。不支持集合set如{1,2,3}。 |
对象 |
仅支持内置扩展数据结构,如表格、日期时间对象等。 |
基本语法
Python语法 |
标准模式 |
操作符,如加减乘除等 |
比较运算符(如==、!=、>等)和逻辑运算符(如and、or、not)等通过op_系列函数支持。 |
注释 |
支持。 |
变量定义赋值 |
不支持。值通过函数调用传递。 |
条件 |
支持。例如e_if、e_if_else、e_switch函数。 |
循环 |
不直接支持,可通过内置函数嵌套实现。 |
函数
Python语法 |
标准模式 |
标准Python内置函数 |
不支持。使用内置DSL函数。 |
函数调用 |
支持。但不支持解包调用。 |
自定义函数def或lambda |
不支持。 |
模块
Python语法 |
标准模式 |
自定义函数def或lambda |
不支持。 |
导入与使用Python标准库 |
不支持。 |
线程与进程创建 |
不支持。 |
导入第三方库 |
不支持。 |
外部网络连接或命令调用 |
不支持。 |