@@ -7,14 +7,12 @@ import EEFeature from '@site/src/components/EEFeature';
7
7
8
8
<EEFeature featureName =' Python UDF ' />
9
9
10
- ็จๆทๅฎไนๅฝๆฐ๏ผUDFs๏ผ้่ฟๆฏๆๅฟๅlambda่กจ่พพๅผๅ้ขๅฎไนๅค็็จๅบ๏ผPythonใJavaScriptๅWebAssembly ๏ผๆฅๅฎไนUDF๏ผๆไพไบๅขๅผบ็็ตๆดปๆงใ่ฟไบๅ่ฝๅ
่ฎธ็จๆทๅๅปบๅฎๅถ็ๆไฝ๏ผไปฅๆปก่ถณๅ
ถ็นๅฎ็ๆฐๆฎๅค็้ๆฑใDatabend UDFๅไธบไปฅไธๅ ็ฑป๏ผ
10
+ ็จๆทๅฎไนๅฝๆฐ๏ผUDFs๏ผ้่ฟๆฏๆๅฟๅlambda่กจ่พพๅผๅ้ขๅฎไนๅค็็จๅบ๏ผPythonใJavaScript & WebAssembly ๏ผๆฅๅฎไนUDF๏ผๆไพไบๅขๅผบ็็ตๆดปๆงใ่ฟไบๅ่ฝๅ
่ฎธ็จๆทๅๅปบๅฎๅถ็ๆไฝ๏ผไปฅๆปก่ถณๅ
ถ็นๅฎ็ๆฐๆฎๅค็้ๆฑใDatabend UDFๅไธบไปฅไธๅ ็ฑป๏ผ
11
11
12
- - [ Lambda UDF ] ( #lambda-udf )
13
- - [ ๅตๅ
ฅๅผUDF ] ( #embedded-udfs )
12
+ - [ Lambda UDFs ] ( #lambda-udfs )
13
+ - [ ๅตๅ
ฅๅผUDFs ] ( #embedded-udfs )
14
14
15
- Databendๆไพไบๅค็งๅฝไปคๆฅ็ฎก็UDFใ่ฏฆๆ
่ฏทๅ้
[ ็จๆทๅฎไนๅฝๆฐ] ( /sql/sql-commands/ddl/udf/ ) ใ
16
-
17
- ## Lambda UDF
15
+ ## Lambda UDFs
18
16
19
17
Lambda UDFๅ
่ฎธ็จๆทไฝฟ็จๅฟๅๅฝๆฐ๏ผlambda่กจ่พพๅผ๏ผ็ดๆฅๅจๅ
ถๆฅ่ฏขไธญๅฎไน่ชๅฎไนๆไฝใ่ฟไบlambda่กจ่พพๅผ้ๅธธ็ฎๆด๏ผๅฏ็จไบๆง่ก็นๅฎ็ๆฐๆฎ่ฝฌๆขๆ่ฎก็ฎ๏ผ่ฟไบๆไฝๅฏ่ฝๆ ๆณไป
ไฝฟ็จๅ
็ฝฎๅฝๆฐๅฎ็ฐใ
20
18
@@ -24,8 +22,17 @@ Lambda UDFๅ
่ฎธ็จๆทไฝฟ็จๅฟๅๅฝๆฐ๏ผlambda่กจ่พพๅผ๏ผ็ดๆฅๅจๅ
ถๆฅ่ฏข
24
22
25
23
``` sql
26
24
-- ๅฎไนUDF
27
- CREATE FUNCTION get_v1 AS (json) - > json[" v1" ];
28
- CREATE FUNCTION get_v2 AS (json) - > json[" v2" ];
25
+ CREATE FUNCTION get_v1 AS (input_json) - > input_json[' v1' ];
26
+ CREATE FUNCTION get_v2 AS (input_json) - > input_json[' v2' ];
27
+
28
+ SHOW USER FUNCTIONS;
29
+
30
+ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
31
+ โ name โ is_aggregate โ description โ arguments โ language โ created_on โ
32
+ โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
33
+ โ get_v1 โ NULL โ โ {" parameters" :[" input_json" ]} โ SQL โ 2024 - 11 - 18 23 :20 :28 .432842 โ
34
+ โ get_v2 โ NULL โ โ {" parameters" :[" input_json" ]} โ SQL โ 2024 - 11 - 18 23 :21 :46 .838744 โ
35
+ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
29
36
30
37
-- ๅๅปบ่กจ
31
38
CREATE TABLE json_table (time TIMESTAMP , data JSON);
@@ -42,7 +49,7 @@ SELECT get_v1(data), get_v2(data) FROM json_table;
42
49
+ -- ----------+------------+
43
50
```
44
51
45
- ## ๅตๅ
ฅๅผUDF
52
+ ## ๅตๅ
ฅๅผUDFs
46
53
47
54
ๅตๅ
ฅๅผUDFๅ
่ฎธๆจๅจSQLไธญๅตๅ
ฅไปฅไธ็ผ็จ่ฏญ่จ็ผๅ็ไปฃ็ ๏ผ
48
55
@@ -59,7 +66,7 @@ SELECT get_v1(data), get_v2(data) FROM json_table;
59
66
Python UDFๅ
่ฎธๆจ้่ฟDatabend็ๅ
็ฝฎๅค็็จๅบไปSQLๆฅ่ฏขไธญ่ฐ็จPythonไปฃ็ ๏ผไป่ๅจSQLๆฅ่ฏขไธญๆ ็ผ้ๆPython้ป่พใ
60
67
61
68
::: note
62
- Python UDFๅฟ
้กปไป
ไฝฟ็จPython็ๆ ๅๅบ๏ผไธๅ
่ฎธ็ฌฌไธๆนๅฏผๅ
ฅ ใ
69
+ Python UDFๅฟ
้กปไป
ไฝฟ็จPython็ๆ ๅๅบ๏ผไธๅ
่ฎธไฝฟ็จ็ฌฌไธๆนๅฏผๅ
ฅ ใ
63
70
:::
64
71
65
72
#### ๆฐๆฎ็ฑปๅๆ ๅฐ
@@ -238,10 +245,10 @@ WebAssembly UDFๅ
่ฎธ็จๆทไฝฟ็จ็ผ่ฏไธบWebAssembly็่ฏญ่จๅฎไน่ชๅฎไน้ป
238
245
239
246
ๅจๆญค็คบไพไธญ๏ผๅๅปบไบๅไธบโwasm_gcdโ็ๅฝๆฐ๏ผ็จไบ่ฎก็ฎไธคไธชๆดๆฐ็ๆๅคงๅ
ฌ็บฆๆฐ๏ผGCD๏ผใ่ฏฅๅฝๆฐไฝฟ็จWebAssemblyๅฎไน๏ผๅ
ถๅฎ็ฐไฝไบ'test10_udf_wasm_gcd.wasm.zst'ไบ่ฟๅถๆไปถไธญใ
240
247
241
- ๅจๆง่กไนๅ๏ผๅฝๆฐๅฎ็ฐ็ปๅไบไธ็ณปๅๆญฅ้ชคใ้ฆๅ
๏ผๅฎ่ขซ็ผ่ฏๆไบ่ฟๅถๆไปถ๏ผ็ถๅ่ขซๅ็ผฉๆ 'test10_udf_wasm_gcd.wasm.zst'ใๆๅ๏ผๅ็ผฉๆไปถ่ขซๆๅไธไผ ๅฐStageใ
248
+ ๅจๆง่กไนๅ๏ผๅฝๆฐๅฎ็ฐ็ปๅไบไธ็ณปๅๆญฅ้ชคใ้ฆๅ
๏ผๅฎ่ขซ็ผ่ฏๆไบ่ฟๅถๆไปถ๏ผ็ถๅๅ็ผฉๆ 'test10_udf_wasm_gcd.wasm.zst'ใๆๅ๏ผๅ็ผฉๆไปถ่ขซๆๅไธไผ ๅฐStageใ
242
249
243
250
::: note
244
- ่ฏฅๅฝๆฐๅฏไปฅ็จRustๅฎ็ฐ๏ผๅฆ็คบไพๆ็คบ๏ผ https ://github.com/risingwavelabs/arrow-udf/blob/main/arrow-udf-wasm/examples/wasm.rs
251
+ ่ฏฅๅฝๆฐๅฏไปฅ็จRustๅฎ็ฐ๏ผๅฆ็คบไพๆ็คบ๏ผ็ฝๅไธบ https ://github.com/risingwavelabs/arrow-udf/blob/main/arrow-udf-wasm/examples/wasm.rs
245
252
:::
246
253
247
254
``` sql
@@ -257,10 +264,6 @@ WHERE
257
264
ORDER BY 1 ;
258
265
```
259
266
260
- ## ๆพ็คบๅทฒๅๅปบ็UDF
267
+ ## ็ฎก็UDF
261
268
262
- ๅฆๆๆจๆณๆพ็คบๅทฒๅๅปบ็UDFใ
263
-
264
- ``` sql
265
- show user functions;
266
- ```
269
+ Databendๆไพไบๅค็งๅฝไปคๆฅ็ฎก็UDFใๆๅ
ณ่ฏฆ็ปไฟกๆฏ๏ผ่ฏทๅ้
[ ็จๆทๅฎไนๅฝๆฐ] ( /sql/sql-commands/ddl/udf/ ) ใ
0 commit comments