Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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


2Modification 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
3Modification of the client interface

Some

new

interfaces

are

added

to

the

UDFClient

client

class

  • Query
  • udf
  • information
  • by
  • username
  • category
  • and
  • udf
  • type

def

getUdfInfosByUdfType(userName:

String,

category:

String,

udfType:

BigInt):

ArrayBuffer[UDFInfoVo]

  • Query
  • the
  • list
  • of
  • udf
  • functions
  • based
  • on
  • jar
  • package
  • by
  • user
  • name

def

getJarUdf(userName:

String):

ArrayBuffer[UDFInfoVo]

  • Query
  • list
  • of
  • udf
  • functions
  • based
  • on
  • py
  • script
  • by
  • username

def

getPyUdf(userName:

String):

ArrayBuffer[UDFInfoVo]

  • Query
  • a
  • list
  • of
  • udf
  • functions
  • based
  • on
  • scala
  • script
  • by
  • username

def

getScalaUdf(userName:

String):

ArrayBuffer[UDFInfoVo]

  • Query
  • a
  • list
  • of
  • custom
  • functions
  • based
  • on
  • py
  • script
  • by
  • username

def

getPyFuncUdf(userName:

String):

ArrayBuffer[UDFInfoVo]

  • Query
  • a
  • list
  • of
  • custom
  • functions
  • based
  • on
  • scala
  • script
  • by
username
  • username 

def

getScalaFuncUdf(userName:

String):

ArrayBuffer[UDFInfoVo]

4Modification of database table structure

5Modification of configuration item
6Modification Error code 
7Modifications for Third Party Dependencies

...