blob: 5096829e493e4199b302e21a09b11b3c73650ae3 [file] [log] [blame]
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>apache_beam.testing.benchmarks.nexmark.queries.query3 module &mdash; Apache Beam 2.67.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=959b4fbe"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="apache_beam.testing.benchmarks.nexmark.queries.query4 module" href="apache_beam.testing.benchmarks.nexmark.queries.query4.html" />
<link rel="prev" title="apache_beam.testing.benchmarks.nexmark.queries.query2 module" href="apache_beam.testing.benchmarks.nexmark.queries.query2.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" aria-label="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="Navigation menu">
<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.io.html">apache_beam.io package</a></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 current"><a class="reference internal" href="apache_beam.testing.html">apache_beam.testing package</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="apache_beam.testing.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="apache_beam.testing.benchmarks.html">apache_beam.testing.benchmarks package</a><ul class="current">
<li class="toctree-l4 current"><a class="reference internal" href="apache_beam.testing.benchmarks.html#subpackages">Subpackages</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="apache_beam.testing.load_tests.html">apache_beam.testing.load_tests package</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="apache_beam.testing.html#submodules">Submodules</a></li>
</ul>
</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>
<li class="toctree-l1"><a class="reference internal" href="apache_beam.yaml.html">apache_beam.yaml 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>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<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="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="apache_beam.testing.html">apache_beam.testing package</a></li>
<li class="breadcrumb-item"><a href="apache_beam.testing.benchmarks.html">apache_beam.testing.benchmarks package</a></li>
<li class="breadcrumb-item"><a href="apache_beam.testing.benchmarks.nexmark.html">apache_beam.testing.benchmarks.nexmark package</a></li>
<li class="breadcrumb-item"><a href="apache_beam.testing.benchmarks.nexmark.queries.html">apache_beam.testing.benchmarks.nexmark.queries package</a></li>
<li class="breadcrumb-item active">apache_beam.testing.benchmarks.nexmark.queries.query3 module</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/apache_beam.testing.benchmarks.nexmark.queries.query3.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">
<section id="module-apache_beam.testing.benchmarks.nexmark.queries.query3">
<span id="apache-beam-testing-benchmarks-nexmark-queries-query3-module"></span><h1>apache_beam.testing.benchmarks.nexmark.queries.query3 module<a class="headerlink" href="#module-apache_beam.testing.benchmarks.nexmark.queries.query3" title="Link to this heading"></a></h1>
<p>Query 3, ‘Local Item Suggestion’. Who is selling in OR, ID or CA in category
10, and for what auction ids? In CQL syntax:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>SELECT Istream(P.name, P.city, P.state, A.id)
FROM Auction A [ROWS UNBOUNDED], Person P [ROWS UNBOUNDED]
WHERE A.seller = P.id
AND (P.state = `OR&#39; OR P.state = `ID&#39; OR P.state = `CA&#39;)
AND A.category = 10;
</pre></div>
</div>
<p>We’ll implement this query to allow ‘new auction’ events to come before the
‘new person’ events for the auction seller. Those auctions will be stored until
the matching person is seen. Then all subsequent auctions for a person will use
the stored person record.</p>
<dl class="py function">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.load">
<span class="sig-prename descclassname"><span class="pre">apache_beam.testing.benchmarks.nexmark.queries.query3.</span></span><span class="sig-name descname"><span class="pre">load</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">events</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pipeline_options</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/testing/benchmarks/nexmark/queries/query3.html#load"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.load" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">apache_beam.testing.benchmarks.nexmark.queries.query3.</span></span><span class="sig-name descname"><span class="pre">JoinFn</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_auction_wait_time</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/testing/benchmarks/nexmark/queries/query3.html#JoinFn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="apache_beam.transforms.core.html#apache_beam.transforms.core.DoFn" title="apache_beam.transforms.core.DoFn"><code class="xref py py-class docutils literal notranslate"><span class="pre">DoFn</span></code></a></p>
<p>Join auctions and person by person id and emit their product one pair at
a time.</p>
<p>We know a person may submit any number of auctions. Thus new person event
must have the person record stored in persistent state in order to match
future auctions by that person.</p>
<p>However we know that each auction is associated with at most one person, so
only need to store auction records in persistent state until we have seen the
corresponding person record. And of course may have already seen that record.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.AUCTIONS">
<span class="sig-name descname"><span class="pre">AUCTIONS</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'auctions_state'</span></em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.AUCTIONS" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON">
<span class="sig-name descname"><span class="pre">PERSON</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'person_state'</span></em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON_EXPIRING">
<span class="sig-name descname"><span class="pre">PERSON_EXPIRING</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'person_state_expiring'</span></em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON_EXPIRING" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.auction_spec">
<span class="sig-name descname"><span class="pre">auction_spec</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">BagStateSpec(auctions_state)</span></em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.auction_spec" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_spec">
<span class="sig-name descname"><span class="pre">person_spec</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">ReadModifyWriteStateSpec(person_state)</span></em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_spec" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_timer_spec">
<span class="sig-name descname"><span class="pre">person_timer_spec</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">TimerSpec(ts-person_state_expiring)</span></em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_timer_spec" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.process">
<span class="sig-name descname"><span class="pre">process</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">element</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.13)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.13)"><span class="pre">Dict</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.13)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="apache_beam.testing.benchmarks.nexmark.models.nexmark_model.html#apache_beam.testing.benchmarks.nexmark.models.nexmark_model.Auction" title="apache_beam.testing.benchmarks.nexmark.models.nexmark_model.Auction"><span class="pre">Auction</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.List" title="(in Python v3.13)"><span class="pre">List</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="apache_beam.testing.benchmarks.nexmark.models.nexmark_model.html#apache_beam.testing.benchmarks.nexmark.models.nexmark_model.Person" title="apache_beam.testing.benchmarks.nexmark.models.nexmark_model.Person"><span class="pre">Person</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">auction_state</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">StateParam(auctions_state)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">person_state</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">StateParam(person_state)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">person_timer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">TimerParam(ts</span> <span class="pre">-</span> <span class="pre">person_state_expiring)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/testing/benchmarks/nexmark/queries/query3.html#JoinFn.process"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.process" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.expiry">
<span class="sig-name descname"><span class="pre">expiry</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">person_state</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">StateParam(person_state)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/testing/benchmarks/nexmark/queries/query3.html#JoinFn.expiry"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.expiry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="apache_beam.testing.benchmarks.nexmark.queries.query2.html" class="btn btn-neutral float-left" title="apache_beam.testing.benchmarks.nexmark.queries.query2 module" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="apache_beam.testing.benchmarks.nexmark.queries.query4.html" class="btn btn-neutral float-right" title="apache_beam.testing.benchmarks.nexmark.queries.query4 module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright %Y, Apache Beam.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>