[ 
https://issues.apache.org/jira/browse/FLINK-5571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

godfrey he updated FLINK-5571:
------------------------------
    Description: 
Currently, a User Defined Function (UDF) in table API & SQL works on zero, one, 
or multiple values in custom evaluation method. Many UDFs need more complex 
features, e.g. report metrics, get parameters from job configuration, or get 
extra data from distribute cache file, etc. Adding open and close methods in 
UserDefinedFunction class can solve this problem. The code cloud look like:

{code}
trait UserDefinedFunction {

  def open(context: UDFContext): Unit = {}

  def close(): Unit = {}
}
{code}

UDFContext contains the information about metric reporters, job parameters, 
distribute cache, etc. The code cloud look like:

{code}
class UDFContext(context: RuntimeContext) {

  def getMetricGroup: MetricGroup = ???

  def getDistributedCacheFile(name: String): File = ???

  def getJobParameter(key: String, default: String): String = ???
}
{code}

  was:
Currently, a User Defined Function (UDF) in table API & SQL works on zero, one, 
or multiple values in custom evaluation method. Many UDFs need more complex 
features, e.g. report metrics, get parameters from job configuration, or get 
extra data from distribute cache file, etc. Adding open and close methods in 
UserDefinedFunction class can solve this problem. The code cloud look like:

{code}
trait UserDefinedFunction {

  def open(context: UDFContext): Unit = {}

  def close(): Unit = {}
}
{code}

UDFContext contains the information about metric reporters, job parameters, 
distribute cache, etc. The code cloud look like:

{code}
class UDFContext(val context: RuntimeContext) {

  def getMetricGroup: MetricGroup = ???

  def getDistributedCacheFile(name: String): File = ???

  def getJobParameter(key: String, default: String): String = ???
}
{code}


> add open and close methods for UserDefinedFunction in TableAPI & SQL
> --------------------------------------------------------------------
>
>                 Key: FLINK-5571
>                 URL: https://issues.apache.org/jira/browse/FLINK-5571
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table API & SQL
>            Reporter: godfrey he
>            Assignee: godfrey he
>
> Currently, a User Defined Function (UDF) in table API & SQL works on zero, 
> one, or multiple values in custom evaluation method. Many UDFs need more 
> complex features, e.g. report metrics, get parameters from job configuration, 
> or get extra data from distribute cache file, etc. Adding open and close 
> methods in UserDefinedFunction class can solve this problem. The code cloud 
> look like:
> {code}
> trait UserDefinedFunction {
>   def open(context: UDFContext): Unit = {}
>   def close(): Unit = {}
> }
> {code}
> UDFContext contains the information about metric reporters, job parameters, 
> distribute cache, etc. The code cloud look like:
> {code}
> class UDFContext(context: RuntimeContext) {
>   def getMetricGroup: MetricGroup = ???
>   def getDistributedCacheFile(name: String): File = ???
>   def getJobParameter(key: String, default: String): String = ???
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to