鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

DataStream算子和UDF支持情况

介绍在使用OmniStream Flink Native化特性时,支持的DataStream算子和UDF。

  • 本节描述OmniStream Flink Native化特性支持的DataStream算子和UDF仅针对Flink 1.16.3引擎。
  • 从数据传输对象、Function类型、UDF依赖类及接口、Java类型翻译和Java语句翻译多个维度给出了支持的UDF白名单。
  • 如果使用OmniStream Flink Native化特性不支持的DataStream算子和UDF,会导致执行计划回退为原生执行,对性能会有一定的影响。

支持DataStream算子

OmniStream Flink Native化特性支持的DataStream算子情况如下:

  • Kafka Source
  • Kafka Sink
  • Map
  • Reduce
  • FlatMap
  • Filter

支持的UDF白名单

支持的数据传输对象如下:

  • Long
  • String
  • Tuple2<String, Long>

支持的依赖类及接口如表1所示,其余约束请参见UDF翻译工具用户指南。环境配置不同可能会导致支持的表达式略有变化,如有异同请联系华为一线工程师确认。

表1 支持表达式列表

Java类

Java类接口

Arrays

static <T> List<T> asList(Array)

HashMap(存取的元素均需要实现hashCode和equals方法)

Object get(Object key)

Object put(Object key, Object value)

void putAll(HashMap m)

boolean containsKey(Object key)

int size()

bool remove(Object key)(与Java接口不同,当前不支持使用变量承接返回值。)

Set<Map.Entry<Object,Object>> entrySet()

Set<Object> keySet()

HashMap clone()

Iterator

boolean hasNext()

Object next()

ArrayList

Object get(int index)

void clear()

void add(Object e)

Iterator iterator()

boolean contains(Object o)

int size()

boolean isEmpty()

LinkedList

Object getFirst()

Object getLast()

void addLast(Object e)

void addFirst(Object e)

Map.Entry(mapentry中的元素需实现hash和equals方法)

Object getKey()

Object getValue()

void setValue(Object value)(与Java接口不同,当前不支持使用变量承接返回值)

HashSet(存取的元素需要实现hash和equals方法)

boolean addAll(ArrayList list)

boolean add(Object e)

boolean remove(Object o)

boolean contains(Object o)

int size()

void clear()

Iterator iterator()

StringBuilder

StringBuilder append(String str)

String toString()

数组(当前只支持对象类型一维数组,不支持基本类型数组及多维数组。)

大小

取元素

存元素(只支持顺序存元素)

Integer

String toString()

bool equals(Integer *obj) override

int intValue()

static Integer valueOf(String s)

static Integer valueOf(int i)

Boolean

static Boolean valueOf(boolean b)

boolean booleanValue()

Long

int hashCode()

boolean equals(Long obj)

String toString()

Long *clone()

long longValue()

static Long valueOf(String s)

static Long valueOf(long l)

Object

int hashCode()

bool equals(Object *obj)

String toString()

Object *clone()

String

int hashCode()

boolean equals(String anObject)

String toString()

Object *clone()

String replace(String target, String replacement)

Array split(String regex)(暂时只支持字符串的split,不支持根据正则进行split。)

String replaceAll(String regex, String replacement)

int lastIndexOf(String str)

int length()

String substring(int beginIndex)

String substring(int beginIndex, int endIndex)

boolean contains(String s)

boolean endsWith(String suffix)

boolean startsWith(String prefix)

Gson

String toJson(HashMap<String,String> map)

Map fromJson(String json, Type typeOf)(只支持将String类型转为Map)

JsonObject

JsonObject getAsJsonObject(String memberName)(只支持String常量)

JsonParser

static JsonObject parseString(String json)

JsonPrimitive

boolean getAsBoolean()

JsonElement

JsonObject getAsJsonObject()

double getAsDouble()

float getAsFloat()

int getAsInt()

long getAsLong()

short getAsShort()

boolean getAsBoolean()

String getAsString()

boolean isJsonNull()

String toString()

String toString()

JsonArray

Iterator<JsonElement> iterator()