blob: 3a885855bd48d7347232e9f95536f99bbfe5dbc1 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>apache_beam.io.gcp.datastore.v1new.datastoreio module &mdash; Apache Beam documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="apache_beam.io.gcp.datastore.v1new.helper module" href="apache_beam.io.gcp.datastore.v1new.helper.html" />
<link rel="prev" title="apache_beam.io.gcp.datastore.v1new.datastore_write_it_pipeline module" href="apache_beam.io.gcp.datastore.v1new.datastore_write_it_pipeline.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Apache Beam
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="apache_beam.coders.html">apache_beam.coders package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.dataframe.html">apache_beam.dataframe package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.internal.html">apache_beam.internal package</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="apache_beam.io.html">apache_beam.io package</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="apache_beam.io.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="apache_beam.io.aws.html">apache_beam.io.aws package</a></li>
<li class="toctree-l3"><a class="reference internal" href="apache_beam.io.external.html">apache_beam.io.external package</a></li>
<li class="toctree-l3"><a class="reference internal" href="apache_beam.io.flink.html">apache_beam.io.flink package</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="apache_beam.io.gcp.html">apache_beam.io.gcp package</a><ul class="current">
<li class="toctree-l4 current"><a class="reference internal" href="apache_beam.io.gcp.html#subpackages">Subpackages</a></li>
<li class="toctree-l4"><a class="reference internal" href="apache_beam.io.gcp.html#submodules">Submodules</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="apache_beam.io.html#submodules">Submodules</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.metrics.html">apache_beam.metrics package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.ml.html">apache_beam.ml package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.options.html">apache_beam.options package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.portability.html">apache_beam.portability package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.runners.html">apache_beam.runners package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.testing.html">apache_beam.testing package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.tools.html">apache_beam.tools package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.transforms.html">apache_beam.transforms package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.typehints.html">apache_beam.typehints package</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.utils.html">apache_beam.utils package</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.error.html">apache_beam.error module</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.pipeline.html">apache_beam.pipeline module</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.pvalue.html">apache_beam.pvalue module</a></li>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.version.html">apache_beam.version module</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Apache Beam</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="apache_beam.io.html">apache_beam.io package</a> &raquo;</li>
<li><a href="apache_beam.io.gcp.html">apache_beam.io.gcp package</a> &raquo;</li>
<li><a href="apache_beam.io.gcp.datastore.html">apache_beam.io.gcp.datastore package</a> &raquo;</li>
<li><a href="apache_beam.io.gcp.datastore.v1new.html">apache_beam.io.gcp.datastore.v1new package</a> &raquo;</li>
<li>apache_beam.io.gcp.datastore.v1new.datastoreio module</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/apache_beam.io.gcp.datastore.v1new.datastoreio.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="module-apache_beam.io.gcp.datastore.v1new.datastoreio">
<span id="apache-beam-io-gcp-datastore-v1new-datastoreio-module"></span><h1>apache_beam.io.gcp.datastore.v1new.datastoreio module<a class="headerlink" href="#module-apache_beam.io.gcp.datastore.v1new.datastoreio" title="Permalink to this headline"></a></h1>
<p>A connector for reading from and writing to Google Cloud Datastore.</p>
<p>This module uses the newer google-cloud-datastore client package. Its API was
different enough to require extensive changes to this and associated modules.</p>
<dl class="class">
<dt id="apache_beam.io.gcp.datastore.v1new.datastoreio.ReadFromDatastore">
<em class="property">class </em><code class="descclassname">apache_beam.io.gcp.datastore.v1new.datastoreio.</code><code class="descname">ReadFromDatastore</code><span class="sig-paren">(</span><em>query</em>, <em>num_splits=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/io/gcp/datastore/v1new/datastoreio.html#ReadFromDatastore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.io.gcp.datastore.v1new.datastoreio.ReadFromDatastore" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="apache_beam.transforms.ptransform.html#apache_beam.transforms.ptransform.PTransform" title="apache_beam.transforms.ptransform.PTransform"><code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.transforms.ptransform.PTransform</span></code></a></p>
<p>A <code class="docutils literal notranslate"><span class="pre">PTransform</span></code> for querying Google Cloud Datastore.</p>
<p>To read a <code class="docutils literal notranslate"><span class="pre">PCollection[Entity]</span></code> from a Cloud Datastore <code class="docutils literal notranslate"><span class="pre">Query</span></code>, use
the <code class="docutils literal notranslate"><span class="pre">ReadFromDatastore</span></code> transform by providing a <cite>query</cite> to
read from. The project and optional namespace are set in the query.
The query will be split into multiple queries to allow for parallelism. The
degree of parallelism is automatically determined, but can be overridden by
setting <cite>num_splits</cite> to a value of 1 or greater.</p>
<p>Note: Normally, a runner will read from Cloud Datastore in parallel across
many workers. However, when the <cite>query</cite> is configured with a <cite>limit</cite> or if the
query contains inequality filters like <cite>GREATER_THAN, LESS_THAN</cite> etc., then
all the returned results will be read by a single worker in order to ensure
correct data. Since data is read from a single worker, this could have
significant impact on the performance of the job. Using a
<a class="reference internal" href="apache_beam.transforms.util.html#apache_beam.transforms.util.Reshuffle" title="apache_beam.transforms.util.Reshuffle"><code class="xref py py-class docutils literal notranslate"><span class="pre">Reshuffle</span></code></a> transform after the read in
this case might be beneficial for parallelizing work across workers.</p>
<dl class="docutils">
<dt>The semantics for query splitting is defined below:</dt>
<dd><p class="first">1. If <cite>num_splits</cite> is equal to 0, then the number of splits will be chosen
dynamically at runtime based on the query data size.</p>
<p>2. Any value of <cite>num_splits</cite> greater than
<cite>ReadFromDatastore._NUM_QUERY_SPLITS_MAX</cite> will be capped at that value.</p>
<p>3. If the <cite>query</cite> has a user limit set, or contains inequality filters, then
<cite>num_splits</cite> will be ignored and no split will be performed.</p>
<p class="last">4. Under certain cases Cloud Datastore is unable to split query to the
requested number of splits. In such cases we just use whatever Cloud
Datastore returns.</p>
</dd>
</dl>
<p>See <a class="reference external" href="https://developers.google.com/datastore/">https://developers.google.com/datastore/</a> for more details on Google Cloud
Datastore.</p>
<p>Initialize the <cite>ReadFromDatastore</cite> transform.</p>
<p>This transform outputs elements of type
<a class="reference internal" href="apache_beam.io.gcp.datastore.v1new.types.html#apache_beam.io.gcp.datastore.v1new.types.Entity" title="apache_beam.io.gcp.datastore.v1new.types.Entity"><code class="xref py py-class docutils literal notranslate"><span class="pre">Entity</span></code></a>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>query</strong> – (<a class="reference internal" href="apache_beam.io.gcp.datastore.v1new.types.html#apache_beam.io.gcp.datastore.v1new.types.Query" title="apache_beam.io.gcp.datastore.v1new.types.Query"><code class="xref py py-class docutils literal notranslate"><span class="pre">Query</span></code></a>) query
used to fetch entities.</li>
<li><strong>num_splits</strong> – (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>) (optional) Number of splits for the query.</li>
</ul>
</td>
</tr>
</tbody>
</table>
<dl class="method">
<dt id="apache_beam.io.gcp.datastore.v1new.datastoreio.ReadFromDatastore.expand">
<code class="descname">expand</code><span class="sig-paren">(</span><em>pcoll</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/io/gcp/datastore/v1new/datastoreio.html#ReadFromDatastore.expand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.io.gcp.datastore.v1new.datastoreio.ReadFromDatastore.expand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="apache_beam.io.gcp.datastore.v1new.datastoreio.ReadFromDatastore.display_data">
<code class="descname">display_data</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/io/gcp/datastore/v1new/datastoreio.html#ReadFromDatastore.display_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.io.gcp.datastore.v1new.datastoreio.ReadFromDatastore.display_data" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="apache_beam.io.gcp.datastore.v1new.datastoreio.WriteToDatastore">
<em class="property">class </em><code class="descclassname">apache_beam.io.gcp.datastore.v1new.datastoreio.</code><code class="descname">WriteToDatastore</code><span class="sig-paren">(</span><em>project</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/io/gcp/datastore/v1new/datastoreio.html#WriteToDatastore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.io.gcp.datastore.v1new.datastoreio.WriteToDatastore" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.io.gcp.datastore.v1new.datastoreio._Mutate</span></code></p>
<p>Writes elements of type
<a class="reference internal" href="apache_beam.io.gcp.datastore.v1new.types.html#apache_beam.io.gcp.datastore.v1new.types.Entity" title="apache_beam.io.gcp.datastore.v1new.types.Entity"><code class="xref py py-class docutils literal notranslate"><span class="pre">Entity</span></code></a> to Cloud Datastore.</p>
<p>Entity keys must be complete. The <code class="docutils literal notranslate"><span class="pre">project</span></code> field in each key must match the
project ID passed to this transform. If <code class="docutils literal notranslate"><span class="pre">project</span></code> field in entity or
property key is empty then it is filled with the project ID passed to this
transform.</p>
<p>Initialize the <cite>WriteToDatastore</cite> transform.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>project</strong> – (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) The ID of the project to write entities to.</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="class">
<dt id="apache_beam.io.gcp.datastore.v1new.datastoreio.DeleteFromDatastore">
<em class="property">class </em><code class="descclassname">apache_beam.io.gcp.datastore.v1new.datastoreio.</code><code class="descname">DeleteFromDatastore</code><span class="sig-paren">(</span><em>project</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/io/gcp/datastore/v1new/datastoreio.html#DeleteFromDatastore"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.io.gcp.datastore.v1new.datastoreio.DeleteFromDatastore" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.io.gcp.datastore.v1new.datastoreio._Mutate</span></code></p>
<p>Deletes elements matching input
<a class="reference internal" href="apache_beam.io.gcp.datastore.v1new.types.html#apache_beam.io.gcp.datastore.v1new.types.Key" title="apache_beam.io.gcp.datastore.v1new.types.Key"><code class="xref py py-class docutils literal notranslate"><span class="pre">Key</span></code></a> elements from Cloud
Datastore.</p>
<p>Keys must be complete. The <code class="docutils literal notranslate"><span class="pre">project</span></code> field in each key must match the
project ID passed to this transform. If <code class="docutils literal notranslate"><span class="pre">project</span></code> field in key is empty then
it is filled with the project ID passed to this transform.</p>
<p>Initialize the <cite>DeleteFromDatastore</cite> transform.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>project</strong> – (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.8)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>) The ID of the project from which the entities will
be deleted.</td>
</tr>
</tbody>
</table>
</dd></dl>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="apache_beam.io.gcp.datastore.v1new.helper.html" class="btn btn-neutral float-right" title="apache_beam.io.gcp.datastore.v1new.helper module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="apache_beam.io.gcp.datastore.v1new.datastore_write_it_pipeline.html" class="btn btn-neutral float-left" title="apache_beam.io.gcp.datastore.v1new.datastore_write_it_pipeline module" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>