blob: 2977704bcb0912680ac9ea4fa9545675c145b5e2 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_181-google-v7) on Wed Aug 14 17:37:11 PDT 2019 -->
<title>HBaseIO (Apache Beam 2.15.0-SNAPSHOT)</title>
<meta name="date" content="2019-08-14">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HBaseIO (Apache Beam 2.15.0-SNAPSHOT)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseCoderProviderRegistrar.html" title="class in org.apache.beam.sdk.io.hbase"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/io/hbase/HBaseIO.html" target="_top">Frames</a></li>
<li><a href="HBaseIO.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.io.hbase</div>
<h2 title="Class HBaseIO" class="title">Class HBaseIO</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.hbase.HBaseIO</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>(<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html#value--">value</a>=<a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.Kind.html#SOURCE_SINK">SOURCE_SINK</a>)
public class <span class="typeNameLabel">HBaseIO</span>
extends java.lang.Object</pre>
<div class="block">A bounded source and sink for HBase.
<p>For more information, see the online documentation at <a
href="https://hbase.apache.org/">HBase</a>.
<h3>Reading from HBase</h3>
<p>The HBase source returns a set of rows from a single table, returning a <code>PCollection&lt;Result&gt;</code>.
<p>To configure a HBase source, you must supply a table id and a <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/conf/Configuration.html?is-external=true" title="class or interface in org.apache.hadoop.conf"><code>Configuration</code></a> to
identify the HBase instance. By default, <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseIO.Read</code></a> will read all rows in the table.
The row range to be read can optionally be restricted using with a <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/hbase.client.Scan.html?is-external=true" title="class or interface in org.apache.hadoop"><code>Scan</code></a> object or using
the <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html#withKeyRange-org.apache.beam.sdk.io.range.ByteKeyRange-"><code>HBaseIO.Read.withKeyRange(org.apache.beam.sdk.io.range.ByteKeyRange)</code></a>, and a <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/hbase.filter.Filter.html?is-external=true" title="class or interface in org.apache.hadoop"><code>Filter</code></a> using <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html#withFilter-org.apache.hadoop.hbase.filter.Filter-"><code>HBaseIO.Read.withFilter(org.apache.hadoop.hbase.filter.Filter)</code></a>, for example:
<pre><code>
// Scan the entire table.
p.apply("read",
HBaseIO.read()
.withConfiguration(configuration)
.withTableId("table"));
// Filter data using a HBaseIO Scan
Scan scan = ...
p.apply("read",
HBaseIO.read()
.withConfiguration(configuration)
.withTableId("table"))
.withScan(scan));
// Scan a prefix of the table.
ByteKeyRange keyRange = ...;
p.apply("read",
HBaseIO.read()
.withConfiguration(configuration)
.withTableId("table")
.withKeyRange(keyRange));
// Scan a subset of rows that match the specified row filter.
p.apply("filtered read",
HBaseIO.read()
.withConfiguration(configuration)
.withTableId("table")
.withFilter(filter));
</code></pre>
<p><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#readAll--"><code>readAll()</code></a> allows to execute multiple <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/hbase.client.Scan.html?is-external=true" title="class or interface in org.apache.hadoop"><code>Scan</code></a>s to multiple <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/hbase.client.Table.html?is-external=true" title="class or interface in org.apache.hadoop"><code>Table</code></a>s.
These queries are encapsulated via an initial <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseQuery.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseQuery</code></a>s and can
be used to create advanced compositional patterns like reading from a Source and then based on
the data create new HBase scans.
<p><b>Note:</b> <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.ReadAll.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseIO.ReadAll</code></a> only works with <a
href="https://beam.apache.org/documentation/runners/capability-matrix/">runners that support
Splittable DoFn</a>.
<pre><code>
PCollection&lt;HBaseQuery&gt; queries = ...;
queries.apply("readAll", HBaseIO.readAll().withConfiguration(configuration));
</code></pre>
<h3>Writing to HBase</h3>
<p>The HBase sink executes a set of row mutations on a single table. It takes as input a <a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection&lt;Mutation&gt;</code></a>, where each <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/hbase.client.Mutation.html?is-external=true" title="class or interface in org.apache.hadoop"><code>Mutation</code></a> represents an idempotent
transformation on a row.
<p>To configure a HBase sink, you must supply a table id and a <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/conf/Configuration.html?is-external=true" title="class or interface in org.apache.hadoop.conf"><code>Configuration</code></a> to identify
the HBase instance, for example:
<pre><code>
Configuration configuration = ...;
PCollection&lt;Mutation&gt; data = ...;
data.apply("write",
HBaseIO.write()
.withConfiguration(configuration)
.withTableId("table"));
</code></pre>
<h3>Experimental</h3>
<p>The design of the API for HBaseIO is currently related to the BigtableIO one, it can evolve or
be different in some aspects, but the idea is that users can easily migrate from one to the other
.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Read</a></span></code>
<div class="block">A <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that reads from HBase.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.ReadAll.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.ReadAll</a></span></code>
<div class="block">Implementation of <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#readAll--"><code>readAll()</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Write</a></span></code>
<div class="block">A <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that writes to HBase.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Read</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#read--">read</a></span>()</code>
<div class="block">Creates an uninitialized <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseIO.Read</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.ReadAll.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.ReadAll</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#readAll--">readAll</a></span>()</code>
<div class="block">A <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that works like <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#read--"><code>read()</code></a>, but executes read operations coming from a
<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseQuery.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseQuery</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Write</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#write--">write</a></span>()</code>
<div class="block">Creates an uninitialized <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseIO.Write</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="read--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Read</a>&nbsp;read()</pre>
<div class="block">Creates an uninitialized <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseIO.Read</code></a>. Before use, the <code>Read</code> must be initialized
with a <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html#withConfiguration-org.apache.hadoop.conf.Configuration-"><code>HBaseIO.Read.withConfiguration(Configuration)</code></a> that specifies the HBase instance,
and a <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html#withTableId-java.lang.String-"><code>tableId</code></a> that specifies which table to read. A <a href="https://static.javadoc.io/org.apache.hadoop/hadoop-common/2.7.3/org/apache/hadoop/hbase.filter.Filter.html?is-external=true" title="class or interface in org.apache.hadoop"><code>Filter</code></a> may also optionally be specified using <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html#withFilter-org.apache.hadoop.hbase.filter.Filter-"><code>HBaseIO.Read.withFilter(org.apache.hadoop.hbase.filter.Filter)</code></a>.</div>
</li>
</ul>
<a name="readAll--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readAll</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.ReadAll.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.ReadAll</a>&nbsp;readAll()</pre>
<div class="block">A <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that works like <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.html#read--"><code>read()</code></a>, but executes read operations coming from a
<a href="../../../../../../org/apache/beam/sdk/values/PCollection.html" title="class in org.apache.beam.sdk.values"><code>PCollection</code></a> of <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseQuery.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseQuery</code></a>.</div>
</li>
</ul>
<a name="write--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>write</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html" title="class in org.apache.beam.sdk.io.hbase">HBaseIO.Write</a>&nbsp;write()</pre>
<div class="block">Creates an uninitialized <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html" title="class in org.apache.beam.sdk.io.hbase"><code>HBaseIO.Write</code></a>. Before use, the <code>Write</code> must be
initialized with a <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html#withConfiguration-org.apache.hadoop.conf.Configuration-"><code>HBaseIO.Write.withConfiguration(Configuration)</code></a> that specifies the
destination HBase instance, and a <a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Write.html#withTableId-java.lang.String-"><code>tableId</code></a> that specifies
which table to write.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseCoderProviderRegistrar.html" title="class in org.apache.beam.sdk.io.hbase"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/io/hbase/HBaseIO.Read.html" title="class in org.apache.beam.sdk.io.hbase"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/io/hbase/HBaseIO.html" target="_top">Frames</a></li>
<li><a href="HBaseIO.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>