Skip to content

Commit 3c72eae

Browse files
authored
[feat-#1455] fix hbase bug & add hbase ttl (#1456)
* [feat-##1455] fix hbase bug & add hbase ttl * [feat-##1455] update ttl value set
1 parent d3db08b commit 3c72eae

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

chunjun-connectors/chunjun-connector-hbase-base/src/main/java/com/dtstack/chunjun/connector/hbase/conf/HBaseConf.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public class HBaseConf extends ChunJunCommonConf {
6161
private String rowkeyExpress;
6262
private Integer versionColumnIndex;
6363
private String versionColumnValue;
64+
private Long ttl;
6465

6566
public String getEncoding() {
6667
return encoding;
@@ -181,4 +182,12 @@ public List<FieldConf> getColumnMetaInfos() {
181182
public void setColumnMetaInfos(List<FieldConf> columnMetaInfos) {
182183
this.columnMetaInfos = columnMetaInfos;
183184
}
185+
186+
public void setTTL(Long ttl) {
187+
this.ttl = ttl;
188+
}
189+
190+
public Long getTtl() {
191+
return ttl;
192+
}
184193
}

chunjun-connectors/chunjun-connector-hbase-base/src/main/java/com/dtstack/chunjun/connector/hbase/converter/HBaseColumnConverter.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import java.util.HashSet;
6767
import java.util.List;
6868
import java.util.Map;
69+
import java.util.Optional;
6970

7071
import static com.dtstack.chunjun.connector.hbase.HBaseTypeUtils.MAX_TIMESTAMP_PRECISION;
7172
import static com.dtstack.chunjun.connector.hbase.HBaseTypeUtils.MIN_TIMESTAMP_PRECISION;
@@ -211,6 +212,9 @@ public Mutation toExternal(RowData rowData, Mutation output) throws Exception {
211212
put = new Put(rowkey, version);
212213
}
213214

215+
put.setTTL(
216+
Optional.ofNullable(hBaseConf.getTtl()).orElseGet(() -> (long) Integer.MAX_VALUE));
217+
214218
for (int i = 0; i < rowData.getArity(); i++) {
215219
if (rowKeyIndex == i || columnConfigIndex.contains(i)) {
216220
continue;
@@ -224,13 +228,13 @@ public Mutation toExternal(RowData rowData, Mutation output) throws Exception {
224228
toExternalConverters.get(i).serialize(rowData, i, put);
225229
if (i == rowData.getArity() - 1) {
226230
for (int x = 0; x < familyAndQualifierBack.length; x++) {
227-
familyAndQualifier[x] =
228-
Arrays.copyOf(
229-
familyAndQualifierBack[x], familyAndQualifierBack[x].length);
230-
if (x + 1 < familyAndQualifierBack.length
231-
&& familyAndQualifierBack[x + 1] == null) {
232-
familyAndQualifier[x + 1] = null;
233-
x = x + 1;
231+
if (familyAndQualifierBack[x] == null) {
232+
familyAndQualifier[x] = null;
233+
} else {
234+
familyAndQualifier[x] =
235+
Arrays.copyOf(
236+
familyAndQualifierBack[x],
237+
familyAndQualifierBack[x].length);
234238
}
235239
}
236240
}

0 commit comments

Comments
 (0)