

<!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.testing.benchmarks.nexmark.queries.query3 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.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" />
    <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"><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.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.testing.html">apache_beam.testing package</a> &raquo;</li>
        
          <li><a href="apache_beam.testing.benchmarks.html">apache_beam.testing.benchmarks package</a> &raquo;</li>
        
          <li><a href="apache_beam.testing.benchmarks.nexmark.html">apache_beam.testing.benchmarks.nexmark package</a> &raquo;</li>
        
          <li><a href="apache_beam.testing.benchmarks.nexmark.queries.html">apache_beam.testing.benchmarks.nexmark.queries package</a> &raquo;</li>
        
      <li>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">
            
  <div class="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="Permalink to this headline">¶</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="function">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.load">
<code class="descclassname">apache_beam.testing.benchmarks.nexmark.queries.query3.</code><code class="descname">load</code><span class="sig-paren">(</span><em>events</em>, <em>metadata=None</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">[source]</span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.load" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="class">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn">
<em class="property">class </em><code class="descclassname">apache_beam.testing.benchmarks.nexmark.queries.query3.</code><code class="descname">JoinFn</code><span class="sig-paren">(</span><em>max_auction_wait_time</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">[source]</span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn" title="Permalink 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">apache_beam.transforms.core.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="attribute">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.AUCTIONS">
<code class="descname">AUCTIONS</code><em class="property"> = 'auctions_state'</em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.AUCTIONS" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON">
<code class="descname">PERSON</code><em class="property"> = 'person_state'</em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON_EXPIRING">
<code class="descname">PERSON_EXPIRING</code><em class="property"> = 'person_state_expiring'</em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.PERSON_EXPIRING" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.auction_spec">
<code class="descname">auction_spec</code><em class="property"> = BagStateSpec(auctions_state)</em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.auction_spec" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_spec">
<code class="descname">person_spec</code><em class="property"> = ReadModifyWriteStateSpec(person_state)</em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_spec" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_timer_spec">
<code class="descname">person_timer_spec</code><em class="property"> = TimerSpec(ts-person_state_expiring)</em><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.person_timer_spec" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.process">
<code class="descname">process</code><span class="sig-paren">(</span><em>element</em>, <em>auction_state=StateParam(auctions_state)</em>, <em>person_state=StateParam(person_state)</em>, <em>person_timer=TimerParam(ts-person_state_expiring)</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">[source]</span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.process" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.expiry">
<code class="descname">expiry</code><span class="sig-paren">(</span><em>person_state=StateParam(person_state)</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">[source]</span></a><a class="headerlink" href="#apache_beam.testing.benchmarks.nexmark.queries.query3.JoinFn.expiry" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

</div>


           </div>
           
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <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"></span></a>
      
      
        <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"></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>