
com.huaweicloud.dws.client.collector.ITableCollector Maven / Gradle / Ivy
package com.huaweicloud.dws.client.collector;
import com.huaweicloud.dws.client.TableConfig;
import com.huaweicloud.dws.client.exception.DwsClientException;
import com.huaweicloud.dws.client.model.TableSchema;
import com.huaweicloud.dws.client.op.Delete;
import com.huaweicloud.dws.client.op.IConvert;
import com.huaweicloud.dws.client.op.Operate;
import com.huaweicloud.dws.client.op.Write;
import com.huaweicloud.dws.client.util.StringUtils;
/**
* @ProjectName: dws-connector
* @ClassName: ITableActionCollector
* @Description:
* @Date: 2023/12/8 17:12
* @Version: 1.0
*/
public interface ITableCollector extends ICollector {
/**
* 当前收集器中存得表定义
*/
TableSchema getTableSchema();
/**
* 获取当前表配置
* @return
*/
TableConfig getTableConfig();
/**
* 直接写数据
*/
default Operate write() {
return new Write(getTableSchema(), this, getTableConfig());
}
/**
* 接口只支持全列更新场景,values为表结构顺序,如果values长度少于数据库表字段数,后面字段全部补充为null
* @param convert 数据转换接口
*/
default Operate write(Object[] values, IConvert convert) throws DwsClientException {
return new Write(getTableSchema(), this, getTableConfig(), values, convert);
}
/**
* 接口只支持全列更新场景,data为用split分割得全列数据并且和收集器得表结构顺序对应,如果data长度少于数据库表字段数,后面字段全部补充为null
* @param convert 数据转换接口
*/
default Operate write(String data, IConvert convert, String split) throws DwsClientException {
TableSchema tableSchema = getTableSchema();
String[] values = new String[tableSchema.getColumns().size()];
StringUtils.split(data, values, split);
return new Write(tableSchema, this, getTableConfig(), values, convert);
}
/**
* 直接写数据
*/
default Operate delete() {
return new Delete(getTableSchema(), this);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy