...
- Ability to add/modify/delete/version control the Udf function of the compiled Jar package through the linkis management console
- Ability to add/modify/delete/version control the written python/scala script custom functions through the linkis console
- The jar package/script corresponding to the udf function can be persistently stored in BML
- Administrator users who can support udf functions can share their personal udf functions with others
- Can support the classification selection or input of new types when creating personal udf functions
Implementation plan
- The linkis_ps_udf_version table needs to be added to support the storage of UDF functions on BML and the storage of multi-version information Relying on the existing BML material management service of linkis, upload the jar/script material of the udf function to the hdfs file system managed by bml.
- When using udf, you need to download from bml to the local directory according to the resourceId and version. The latest version (the maximum version) is used by default.
Things to Consider & Note:
...
Modification | Detail | |
---|---|---|
1 | Modification of maven module | |
2 | Modification of HTTP interface | UDF added POST /api/rest_j/v1/udf/add UDF modification POST /api/rest_j/v1/udf/update UDF delete POST /api/rest_j/v1/udf/delete/{id} UDF share POST /api/rest_j/v1/udf/shareUDF UDF handover POST /api/rest_j/v1/udf/handover UDF version publish POST /api/rest_j/v1/udf/publish Version rollback POST /api/rest_j/v1/udf/rollback View version list GET /api/rest_j/v1/udf/versionList UDF management page POST /api/rest_j/v1/udf/managerPages (Note: only the udf created by the user can be seen) UDF shared user list POST /api/rest_j/v1/udf/getSharedUsers UDF expires POST /api/rest_j/v1/udf/setExpire UDF view source code POST /api/rest_j/v1/udf/downloadUdf Get a list of udf users GET /api/rest_j/v1/udf/allUdfUsers Get the first-level classification of the user's personal function GET /api/rest_j/v1/udf/userDirectory |
3 | Modification of the client interface | Some new interfaces are added to the UDFClient client class
def getUdfInfosByUdfType(userName: String, category: String, udfType: BigInt): ArrayBuffer[UDFInfoVo]
def getJarUdf(userName: String): ArrayBuffer[UDFInfoVo]
def getPyUdf(userName: String): ArrayBuffer[UDFInfoVo]
def getScalaUdf(userName: String): ArrayBuffer[UDFInfoVo]
def getPyFuncUdf(userName: String): ArrayBuffer[UDFInfoVo]
def getScalaFuncUdf(userName: String): ArrayBuffer[UDFInfoVo] |
4 | Modification of database table structure | |
5 | Modification of configuration item | |
6 | Modification Error code | |
7 | Modifications for Third Party Dependencies |
...