[ https://issues.apache.org/jira/browse/FLINK-2055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15410659#comment-15410659 ]
ASF GitHub Bot commented on FLINK-2055: --------------------------------------- Github user ramkrish86 commented on a diff in the pull request: https://github.com/apache/flink/pull/2332#discussion_r73788502 --- Diff: flink-streaming-connectors/flink-connector-hbase/src/main/java/org/apache/flink/streaming/connectors/hbase/HBaseMapper.java --- @@ -0,0 +1,97 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.flink.streaming.connectors.hbase; + +import java.io.Serializable; +import java.util.List; + +/** + * Maps a input value to a row in HBase table. + * + * @param <IN> input type + */ +public interface HBaseMapper<IN> extends Serializable { + + /** + * Given a input value return the HBase row key. + * + * @param value + * @return row key + */ + byte[] rowKey(IN value); + + /** + * Given a input value return a list of HBase columns. + * + * @param value + * @return a list of HBase columns + */ + List<HBaseColumn> columns(IN value); + + /** + * Represents a HBase column which can be either a standard one or a counter. + */ + class HBaseColumn { + private byte[] family; + private byte[] qualifier; + private byte[] value; + private long timestamp; + private Long increment; + + public HBaseColumn(byte[] family, byte[] qualifier, byte[] value) { + this(family, qualifier, value, -1); + } + + public HBaseColumn(byte[] family, byte[] qualifier, byte[] value, long timestamp) { + this.family = family; + this.qualifier = qualifier; + this.value = value; + this.timestamp = timestamp; + } + + public HBaseColumn(byte[] family, byte[] qualifier, long increment) { + this.family = family; + this.qualifier = qualifier; + this.increment = increment; + } + + public byte[] getFamily() { + return family; + } + + public byte[] getQualifier() { + return qualifier; + } + + public byte[] getValue() { + return value; + } + + public long getTs() { + return timestamp; + } + + public Long getIncrement() { + return increment; --- End diff -- May be we can add an API explicity for increment? Instead of having a boolean to identify increment? > Implement Streaming HBaseSink > ----------------------------- > > Key: FLINK-2055 > URL: https://issues.apache.org/jira/browse/FLINK-2055 > Project: Flink > Issue Type: New Feature > Components: Streaming, Streaming Connectors > Affects Versions: 0.9 > Reporter: Robert Metzger > Assignee: Hilmi Yildirim > > As per : > http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Write-Stream-to-HBase-td1300.html -- This message was sent by Atlassian JIRA (v6.3.4#6332)