<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Progressive Indexing for Interactive Analytics</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Hohenstein</string-name>
          <email>hohenstein@cs.uni-kl.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Technical University of Kaiserslautern Erwin-Schrödinger-Straße</institution>
          ,
          <addr-line>67663 Kaiserslautern Kaiserslautern</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Progressive Visual Analytics (PVA) is a recent paradigm in the realm of visualization. PVA is closely related to approximate query processing and streaming applications with a focus on real-time interactivity and features supporting a uid and insightful experience for data analysts working on unknown data sources in an exploratory way. We want to observe the paradigm of progressive data science through the lens of database systems, more speci cally considering existing technologies which can be exploited to support progressive systems. In this paper we brie y investigate the similarities of PVA to approximate query processing and present an indexing strategy which can be utilized in approximate and progressive environments without con icting with its intrinsic requirements.</p>
      </abstract>
      <kwd-group>
        <kwd>progressive visual analytics</kwd>
        <kwd>approximate query processing</kwd>
        <kwd>indexing</kwd>
        <kwd>sampling</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Progressive Visual Analytics (PVA) [
        <xref ref-type="bibr" rid="ref17 ref4">4, 17</xref>
        ] is a relatively
new paradigm in the realm of visualization. It's main
objective is to develop algorithms and infrastructure to support
analysts in exploratory ad hoc data analysis. This means
each query should return an (approximate) result within an
upper time bound, so that data exploration can be
considered a real-time process. Additionally, the analyst should
be able to steer the query by tuning parameters of the
computation. The key principle of the progressive paradigm is
to instantly return an approximate result which is
(progressively) updated in the background. Ideally some notion of
(partial) re-use of earlier results that intersect with a live
query should be in place to keep a certain continuity in a
computation and further reduce the response time of later
queries. Many recent papers on PVA ([
        <xref ref-type="bibr" rid="ref10 ref3 ref7 ref8">3, 7, 8, 10</xref>
        ]) have
put the focus on features and requirements of progressive
32nd GI-Workshop on Foundations of Databases (Grundlagen von
Datenbanken), September 01-03, 2021, Munich, Germany.
      </p>
      <p>Copyright ' 2021 for this paper by its authors. Use permitted under
Creative Commons License Attribution 4.0 International (CC BY 4.0).
algorithms and have investigated potentials and future
challenges of the paradigm.</p>
      <p>
        Turkay et al. have discussed potentials and challenges of a
progressive data science approach in the eld of Machine
Learning, Data Base Systems and Visualization [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. They
identify the following relevant areas of (recent) research in
the DB community:
      </p>
      <p>Approximate Query Processing
re-use of (partial) results and sampling that takes into
account rare subpopulations
self-adapting (data organization, indexing, etc.) data
structures
speculative query processing
(progressive) data wrangling and cleaning</p>
      <p>
        In this paper, we want to take a more detailed look at
the application of progressive indexing [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] in the context of
PVA. In particular, we will focus on a self-adapting index,
touching the areas of approximate querying and sampling
to support the requirements of progressive analysis tasks.
The main contributions of the paper is to demonstrate the
synergy between approximate (and by similarity of the
concepts progressive) querying approaches and progressive
indexing. Additionally, we present a sampling and indexing
strategy useful in realizing systems for progressive query
environments. The outline of our paper is as follows: First we
want to give an overview about the paradigm of PVA and
take a look at which existing data base technologies can be
utilized to support the progressive paradigm. In sectiion 3
we present our approach of combining a strategy involving
approximate query processing and construction of a
progressive index to support aspects of "progressiveness"regarding
fast, reliable intermediate results. We then present an
evaluation of our e orts and in section 4. We close the paper
with a conclusion and outlook on future work.
2.
      </p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK AND BACKGROUND</title>
      <p>
        The iterative nature of the progressive computation can
be found in a number of already existing computational
concepts. The most similar concepts that come to mind are
Streaming, Online, and Iterative algorithms. In the realm of
data base applications, the concept of Online Aggregation is
closely related [
        <xref ref-type="bibr" rid="ref12 ref9">9, 12</xref>
        ]. Essentially, the eld of PVA does not
introduce a completely new computational paradigm, but
describes a set of features a computational process should
ful ll to to be classi ed as progressive, Stolper, Aupetit, and
Fekete et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] comprised a de nition of features a
progressive computation must possess. The computation should:
      </p>
      <sec id="sec-2-1">
        <title>1. Be bounded on time and data.</title>
        <p>2. Report intermediate outputs: a result, and measures
of quality and progress.</p>
      </sec>
      <sec id="sec-2-2">
        <title>3. Be bounded on latency.</title>
      </sec>
      <sec id="sec-2-3">
        <title>4. Converge towards the true result.</title>
      </sec>
      <sec id="sec-2-4">
        <title>5. Be controllable by a user during execution.</title>
        <p>From the perspective of data base systems, this leads to
the following "progressive"requirements for a system or
infrastructure designed for analytical components that adhere
to the design goals mentioned above.</p>
        <p>1. Suitable sampling algorithms with outlier detection.
2. Fast approximate algorithms.
3. E cient (partial) reuse to bring continuity into a
steered computation.
4. Metrics on quality and progression of the computation.
5. Guarantees on user given time-bounds to the rst
result and to new results.
6. Supporting structures to aid data analysts (Indexes,</p>
        <p>Meta Data, etc.).</p>
        <p>
          In the context of this paper, we focus on requirements
1, 2, and 6: Sampling with outlier detection, approximate
querying approaches, and indexing techniques to support
progressive exploration tasks. More speci cally, we
propose a progressively built index which is constructed while a
user poses fast approximate queries in a real time fashion.
By real time we mean, that queries should return a result
below the interactivity threshold of 500ms, as proposed by
Liu et al [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. For our approach, we investigated the work
of Holanda et al. [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], which describes an index which is
built progressively while querying a data base, and aim to
integrate this indexing technique with Approximative Query
Processing (AQP). Generally, there are two major categories
of AQP approaches. online aggregation [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and sampling [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
Sampling approaches (e.g. BlinkDB [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], AQUA [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ])
require preprocessing to deliver statistically signi cant results on
lower populations, which clashes with the dynamic nature
of exploratory data analysis. Online aggregation (e.g.
CONTROL [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], DBO [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]) struggles to give reliable
approximations for rare subpopulations of a large data set. To remedy
these weaknesses, we studied the work of Galakatos et al.
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] who employs uniform sampling in tandem with rare
subpopulation detection to amount for data skew and outliers.
We use a similar approach, but combine it with parallel
preprocessing to collect distributional metadata of the data set
to be explored in order to improve later samples. We bridge
the non-interactive preprocessing gap with uniform
sampling (which requires no initial preprocessing), re ned with
rare subpopulation detection. As such, we are able to
quickly answer queries with rare populations and data skew taken
into account, while samples taken later accurately represent
the real data.
        </p>
        <p>On a basic level, the indexer by Holanda et al. takes a
fraction of the data of and adds them to a growing index (see
Figure 1). The cost of index creation is meared outover the
run time of queries issued to the data base. For a standard
query environment, this means that initially queries will
take rather long, as early inquiries to the data base can not
bene t from indexes and have to scan all tuples sequentially.</p>
        <p>More precisely, Holanda's approach is divided into three
phases. In the Creation Phase a (standard, non
approximate) query rst performs an index lookup on the fraction of
indexed data ( ). Now, the not-yet-indexed 1 fraction of
the original column is scanned while expanding the index by
a chosen fraction of the column size. For the index
creation Holanda et al. use one of four sorting algorithms:
Quicksort, Bucketsort, Radixsort (MSD), and Radixsort (LSD).
Depending on the utilized Indexing method, the partial
index performs better for di erent querying scenarios. Once
all data is indexed the approach enters the Re nement
Phase. There, queries can be performed without scanning any
non-indexed data. Additionally, the existing, rough index is
re ned, progressively converging towards a fully ordered
index. Lastly, in the Consolidation Phase the ordered index
is now progressively converted to a B+ tree for query e
ciency. For an example, please refer to Figure 2 for a short
overview of the quicksort indexing appproach of Holanda et
al.</p>
        <p>While useful in an exact, non approximate querying
setting, Holanda states that progressive indexing techniques
most likely will synergize well with approximate querying
techniques, since the problem of initially longer running
queries can be remedied by settling for faster, approximate
results before an index structure exists.
3.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>PROGRESSIVE INDEXING IN THE CON</title>
    </sec>
    <sec id="sec-4">
      <title>TEXT OF APPROXIMATE QUERY PRO</title>
    </sec>
    <sec id="sec-5">
      <title>CESSING.</title>
      <p>
        The premise of progressive indexing is to iteratively
create a database index on a previously unknown data
source and mear out"the cost of doing so over several running
queries. We want to explore if progressive indexing can be
used alongside and/or bene t from a progressive querying
approach. Since building a complete index can take a long
time, doing so is kind of antithetical for an ad-hoc
exploratory query session where fast (approximate) results on an
unexplored and unprepared data source are the focus. The
progressive indexing will incrementally build an index in
parallel to interactive query sessions, speeding up certain
queries, and also preparing the data base for queries requiring an
exact result. The synergy with approximate querying largely
stems from the fact, that approximate / progressive queries
don't have to scan the complete data base for a query which
is red against a data base with no index whatsoever. If only
a subset of tuples is retrieved initially, the indexing can be
done in a more dynamic manner alongside of a uid "real
timeuser interaction from the start. To explore this venue, we
built a prototype comparing the suitability of various
sampling / indexing techniques based on Holanda's work in the
scope ([
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]) of approximate querying applications.
Roughly explained, our approach rst enters a preparatory stage
in which facilities for the progressive index are created and
meta-data to ensure statistically signi cant samples is
collected. After this initial stage the partial index is in place
and populated in parallel to approximate querying sessions.
To keep the system interactive, during the preparatory
stage queries can be answered in parallel, albeit not with data
skew or outliers taken into account.
      </p>
      <p>The following features are our main contributions which
di erentiate our approach to the work of Holanda et al. First,
we keep an absolute number s of tuples instead of a certain
fraction of the complete data set to determine how many
tuples to index, since we have no clue how many rows the
data set to be inspected has. Also, not only do we partially
index the complete set per query, we also employ
approximate query processing and trade accuracy of results for speed
concerning the answering of queries during all stages of
querying. In the same vein, we supplement our sampling
approaches with rare population indexing to improve the statistical
signi cance of samples taken from the original data.</p>
      <p>For a high-level overview of the architecture of the query
and sampling engine, please refer to Figure 3.
3.1</p>
    </sec>
    <sec id="sec-6">
      <title>Initial Sampling and Preprocessing</title>
      <p>Since in an approximate environment the cardinality of
the complete data base is unknown, it is impossible to just
determine some fraction of the complete data set which
should be indexed per query. Since for our case we always
take (increasing) samples of the complete data, we index s
many tuples, where s is the size of the sample (See Figure 4).
A nice side e ect of this approach is, that an initial partial
index is available much earlier, as the query only processes
a subset of the complete data set and does not have to scan
the complete data set.</p>
      <p>
        Approximate results require a random sample to be
statistically relevant. Taking just the rst rows as a sample
like in the original implementation would not return good
results. As Galakatos et al. point out [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], we require some
initial knowledge about a data set to be able to reach some
modicum of statistical signi cance with standard sampling
methods (like the total row count for example). To solve
this dilemma, we utilize Reservoir Sampling [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] to create
the rst sample. Since reservoir sampling misses any skew
or outliers in the data, we combine the Reservoir Sampling
technique with preprocessing of the data to be streamed to
make the following samples more representative of the real
data set. We count the number of rows of the data set as and
record the count of attribute groups to get meta data about
a columns distribution and the replacement probability for
each row, as shown in Algorithm 1. While a preprocessing
step might seem to go against to the requirements of the
progressive paradigm, we deem it acceptable as queries can
already be answered during the preprocessing, albeit with
less accurate results.
3.1.1
      </p>
      <p>Rare Population Indexing</p>
      <p>Together with the reservoir sample, we build another
sample that takes rare attribute values into account. To do this,
we designate a certain fraction as a threshold for a value
to count as rare. For this we use the current row count and
attribute distribution gained during the reservoir
preprocessing. Any attribute appearing for a fraction of less than
of the row count will be sampled separately. Since the row
count increases during iteration, we have to continuously
check if we still consider an attribute rare. Once an
attribute is deemed rare, it will be removed from the rare sample
pool if it appears more often than ( 2) current rowcount.
Using this method will provide su cient entries in the
sample for rare groups and thus more interesting results, even in
the early phases of sampling. The rare samples however will
be discarded when the system switches to static sampling to
guarantee the correct distribution and proper randomness
(See Algorithm 1).</p>
      <sec id="sec-6-1">
        <title>Algorithm 1: Modi ed Reservoir Sampling</title>
        <p>Input: Data stream to record distribution from.
Output: Random uniform sample of dataset, random
samples from rare populations.
1 rowcount 0;
2 rareThreshold 0;
3 groupCounts initialize dictionary;
4 sample initialize sample;
5 for each row in datastream do
6 groupCounts occurenec of att. value;
7 rowCount += 1;
8 if length of sample &lt; max. sample size then
9 add row to sample;
10 else
11
12
13
14
15
16
replacement prob. sample size / rowcount;
if value gets replaced then
replacedRow rand. row in curr. sample;
replace row with new row;
if replacedRow is rare then
resample replaced row in separate
sample
17
18
19
20
21
22
23
24
25 end</p>
        <p>end
else
end</p>
        <p>end
end
rareThreshold
if row is a rare entry then
resample row in separate sample</p>
        <p>rowCount * ;
3.2</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Early Query Executions</title>
      <p>Early queries encompass all queries that are executed
before any index is built. The set of tuples these queries are
executed on is a combination of the existing random
uniform reservoir sample and parts of the random samples for
rare populations. If the tuples of the reservoir sample
contain too few of any rare attribute value, tuples contained
in the separate index of rare populations will be randomly
added so that they are not overlooked. This will produce
more reliable results than straight reservoir sampling, even
if they are somewhat biased. Mind this mode of querying is
only temporary, as it is only included to bridge the time
needed to preprocess the data set and create the initial index
structure which incorporates a strati ed sampling approach
to take into account data skew and rare populations.
3.3</p>
    </sec>
    <sec id="sec-8">
      <title>Index Generation</title>
      <p>
        After having created an initial random sample and a full
pass over the data to collect distributional metadata, a
partial index tree is created. For this we have implemented the
Progressive Radixsort (MSD) method, similar to Holanda
et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. From the initial preprocessing, we create a B+
tree index structure for each column in accordance of the
amount of di erent attribute instances we observed. Into
this index tree the original reservoir sample is then inserted.
Now, this index tree will bee populated with more samples
over time, utilizing any down-time during a user session. As
mentioned earlier in this section, we collected metadata
during the initial sampling step about the distribution of the
data. Thus, all future samples which are used to populate
the index structure can be chosen so that they re ect the
distribution of the original data using a strati ed sampling
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] approach. Data samples are thus pulled randomly from
their respective groups and not just randomly overall. Once
an (approximate) query is issued, the progressive indexing
is paused, and the query is only answered by tuples already
indexed. If an extreme skew is present, it can easily happen
that samples would include less than one entry to re ect the
correct distribution. We opt to include at least one of
these very rare datapoints with each sample as illustrated in
Figure 5, since outliers often are a point of interest for
exploratory data analysis. The distribution in the index is thus
slightly o in the beginning, but since the implementation
keeps pulling samples continuously, this error will correct
itself quickly over time. This also guarantees that enough
rare entries are available early to create meaningful
approximations. When the samples are generated, they are
pulled and indexed sequentially until the data is exhausted. At
this point, the index is fully built and all future queries will
run with the full index. Note, that while later
approximate queries take longer due to the ever increasing number of
strati ed tuples entered into the index, the gain in result
accuracy is usually worth it. While Holanda's original
approach only re nes the coarse index into a B+ tree after all
data has been indexed, we chose to re ne the index
immediately after indexing a new fragment of the original data. The
small overhead of immediate re nement to a full B+ tree
allows for much faster queries than on a coarse index.
There queries would quickly reach undesirable delays if issued
over large indexes. If the index becomes too large that
querying it completely becomes too costly, we can resort either
to querying only a statistically relevant sample of the index
or to pruning the index to a subset of the original data. To
keep these approximate queries or pruned indexes
statistically relevant, we reference the distributional metadata to
create an appropriate approximation of the original data. It
should be obvious, that at this point, the index structure is
not only useful for approximate queries, but will also serve
in scenarios where exact results are required.
      </p>
    </sec>
    <sec id="sec-9">
      <title>EVALUATION</title>
      <p>Since it is not really interesting if the queries themselves
are faster for an approximate setting instead of a
contemporary setting, we will focus on comparing the time until the
progressive indexing converges to a full query compared to
the approach of Holanda et al., and how well the strati ed
index manages to account for data skew while uncompleted.
4.1</p>
    </sec>
    <sec id="sec-10">
      <title>Setup</title>
      <p>For the evaluation, we have implemented the system in
Python version 3.8.3. The experiments were run on a
machine with an Intel 6700k processor at 4.4GHz and 32GB of
DDR4 RAM at 2133MHz.
4.2</p>
    </sec>
    <sec id="sec-11">
      <title>Data</title>
      <p>We have generated a dataset with ve million rows
containing data about the age, salary and received tips of waiters.
To test the indexing prototype, we made sure to integrate
di erent value distributions and amount of skew into the
data. The tip tuples are uniformly distributed. The
distribution of the age and salary values (see Figures 6 and 7) is
each skewed towards a particular value range.
4.3</p>
    </sec>
    <sec id="sec-12">
      <title>Time until Index Convergence</title>
      <p>For this experiment, we implemented progressive indexing
in a similar fashion as Holanda et al. demonstrated in their
approach (speci cally the Radix MSD variation in its base
form) and ran it on the same data set. Only one index on the
`age' column was constructed. Each second we repeatedly
issued a simple query (age 32) until the index converged.
We did not implement the adaptive indexing budget
proposed by Holanda et al., but instead set the to-be-indexed
fraction with each query to 10%. The sample size for our
version was again set to 5000. In Figure 8 we can see that
a progressive indexing approach greatly bene ts from
approximate querying techniques. The base version takes 404
seconds to a fully converted index, while our approach only
takes 18 seconds. We thus reach index convergence roughly
22 times faster than the original approach. This is mostly
due to the fact that the original approach relies on queries
always ranging over the complete data base to further
generate the index. As a result, the index cannot be constructed
further until the current query has nished processing all
tuples. Our solution on the other hand utilizes the much
shorter time to return of approximate queries to be able to
quickly construct an index.
4.4</p>
    </sec>
    <sec id="sec-13">
      <title>Accounting for Data Skew</title>
      <p>In this experiment, we looked at how well our sampling
approach can handle data skew. For this, we ran a count('age')
query run once with an initial reservoir sample generated in
the rst step before a strati ed index is built, and
afterwards on a reservoir sample including rare subpopulation
sampling. The sample size for this test was 5000. Figure 9
shows the pitfall of standard reservoir sampling. Since the
values 25 and 26 represent the bulk of the entries, other
entries are easily missed. Especially the rare outliers are
exceedingly unlikely to be included in the initial sample. Figure
10 shows the impact rare population sampling strategy can
have on a sample of the same size. Even exceedingly rare
outliers (age 30-36) are included in the sample. While not
correct, this sample composition is a much better
representation of the real data set. Here we can see the advantage
of including rare population sampling in addition to
reservoir sampling until we have a true strati ed sample. When
the strati ed index structure is built later, data skew largely
stops being a problem as we now know the distribution of
values. As shown in Figure 5, the distribution is not exact
simply because we can not include fractions of tuples, but
good enough to give a quite accurate picture of the complete
data.</p>
    </sec>
    <sec id="sec-14">
      <title>CONCLUSION AND OUTLOOK</title>
      <p>
        For this work we prototyped a progressive indexing
approach usable in an approximate querying environment
inspired by a Progressive Indexing approach by Holanda et
al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The AQP environment leads to signi cantly lower
query execution times, even when the data is not fully
indexed. To make these approximate results more signi cant,
we combined reservoir sampling, meta data collection (rare
population sampling) and a strati ed sampling approach to
remedy for the intrinsic inaccuracy of approximate queries.
Our evaluation results con rm Holanda's assumption that
the progressive indexing approach bene ts greatly from the
much faster time to return of approximate queries on
nonindexed data. For future work on this topic, we identi ed two
major areas of potential improvements: Including an
indexing budget, and expanding the strati ed sampling strategy.
In the original approach by Holanda et al., an indexing
budget was used to automatically adjust how much of the query
time should be used for indexing. We could imagine a
similar solution for automatically determining the sample size for
the progressive index in an approximate query environment.
For the strati ed sampling, we chose a very simple solution
to determine how the samples should be generated by just
relying on the skew of one column. In a real environment,
this might not be viable since other columns might be just
as interesting. Creating a more re ned scheme to account
for skew found in several attributes would further increase
the reliability of the partial results returned by approximate
queries with our proposed indexing strategy.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Acharya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. B.</given-names>
            <surname>Gibbons</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Poosala</surname>
          </string-name>
          .
          <article-title>Congressional samples for approximate answering of group-by queries</article-title>
          . In W. Chen,
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Naughton</surname>
          </string-name>
          , and P. A. Bernstein, editors,
          <source>Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, May 16-18</source>
          ,
          <year>2000</year>
          , Dallas, Texas, USA, pages
          <volume>487</volume>
          {
          <fpage>498</fpage>
          . ACM,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Agarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Panda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Mozafari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Madden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Stoica</surname>
          </string-name>
          . Blinkdb:
          <article-title>Queries with bounded errors and bounded response times on very large data</article-title>
          .
          <source>CoRR, abs/1203.5485</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Angelini</surname>
          </string-name>
          , T. May, G. Santucci, and H.
          <string-name>
            <surname>-J. Schulz</surname>
          </string-name>
          .
          <article-title>On quality indicators for progressive visual analytics</article-title>
          .
          <source>06</source>
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Angelini</surname>
          </string-name>
          , G. Santucci,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schumann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schulz</surname>
          </string-name>
          .
          <article-title>A review and characterization of progressive visual analytics</article-title>
          .
          <source>Informatics</source>
          ,
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>31</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Cohen</surname>
          </string-name>
          . Strati ed sampling. In M. Lovric, editor,
          <source>International Encyclopedia of Statistical Science</source>
          , pages
          <volume>1547</volume>
          {
          <fpage>1550</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>K.</given-names>
            <surname>Dursun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Binnig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Cetintemel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kraska</surname>
          </string-name>
          .
          <article-title>Revisiting reuse in main memory database systems</article-title>
          . CoRR, abs/1608.05678,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Fekete</surname>
          </string-name>
          , D. Fisher,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nandi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Sedlmair</surname>
          </string-name>
          .
          <article-title>Progressive data analysis and visualization (dagstuhl seminar 18411)</article-title>
          .
          <source>Dagstuhl Reports</source>
          ,
          <volume>8</volume>
          (
          <issue>10</issue>
          ):
          <volume>1</volume>
          {
          <fpage>40</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Fekete</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Primet</surname>
          </string-name>
          .
          <article-title>Progressive analytics: A computation paradigm for exploratory data analysis</article-title>
          .
          <source>CoRR, abs/1607.05162</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Galakatos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Crotty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Zgraggen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Binnig</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kraska</surname>
          </string-name>
          .
          <article-title>Revisiting reuse for approximate query processing</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>10</volume>
          (
          <issue>10</issue>
          ):
          <volume>1142</volume>
          {
          <fpage>1153</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gogolou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Tsandilas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Palpanas</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Bezerianos</surname>
          </string-name>
          .
          <article-title>Progressive similarity search on time series data</article-title>
          .
          <source>In Proceedings of the Workshops of the EDBT/ICDT 2019 Joint Conference</source>
          , EDBT/ICDT 2019, Lisbon, Portugal, March
          <volume>26</volume>
          ,
          <year>2019</year>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>J. M. Hellerstein</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Avnur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Chou</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Hidber</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Olston</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Raman</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Roth</surname>
            , and
            <given-names>P. J.</given-names>
          </string-name>
          <string-name>
            <surname>Haas</surname>
          </string-name>
          .
          <article-title>Interactive data analysis: The control project</article-title>
          .
          <source>Computer</source>
          ,
          <volume>32</volume>
          (
          <issue>8</issue>
          ):
          <volume>51</volume>
          {
          <fpage>59</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>J. M. Hellerstein</surname>
            ,
            <given-names>P. J.</given-names>
          </string-name>
          <string-name>
            <surname>Haas</surname>
            , and
            <given-names>H. J.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>Online aggregation</article-title>
          . In J. Peckham, editor,
          <source>SIGMOD 1997, Proceedings ACM SIGMOD International Conference on Management of Data, May 13-15</source>
          ,
          <year>1997</year>
          , Tucson, Arizona, USA, pages
          <volume>171</volume>
          {
          <fpage>182</fpage>
          . ACM Press,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P.</given-names>
            <surname>Holanda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Manegold</surname>
          </string-name>
          , H. Muhleisen, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Raasveldt</surname>
          </string-name>
          .
          <article-title>Progressive indexes: Indexing for interactive data analysis</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>12</volume>
          (
          <issue>13</issue>
          ):
          <volume>2366</volume>
          {
          <fpage>2378</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>C. M. Jermaine</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Arumugam</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Pol</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Dobra</surname>
          </string-name>
          .
          <article-title>Scalable approximate query processing with the DBO engine</article-title>
          . In C. Y.
          <string-name>
            <surname>Chan</surname>
            ,
            <given-names>B. C.</given-names>
          </string-name>
          <string-name>
            <surname>Ooi</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Zhou, editors,
          <source>Proceedings of the ACM SIGMOD International Conference on Management of Data</source>
          , Beijing, China, June 12-14,
          <year>2007</year>
          , pages
          <fpage>725</fpage>
          {
          <fpage>736</fpage>
          . ACM,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liu</surname>
          </string-name>
          and
          <string-name>
            <surname>J. Heer.</surname>
          </string-name>
          <article-title>The e ects of interactive latency on exploratory visual analysis</article-title>
          .
          <source>IEEE Trans. Vis. Comput. Graph.</source>
          ,
          <volume>20</volume>
          (
          <issue>12</issue>
          ):
          <volume>2122</volume>
          {
          <fpage>2131</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>T. K.</given-names>
            <surname>Sellis</surname>
          </string-name>
          .
          <article-title>Review - the aqua approximate query answering system</article-title>
          .
          <source>ACM SIGMOD Digit. Rev., 2</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>C. D. Stolper</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Perer</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Gotz</surname>
          </string-name>
          .
          <article-title>Progressive visual analytics: User-driven visual exploration of in-progress analytics</article-title>
          .
          <source>IEEE Transactions on Visualization and Computer Graphics</source>
          ,
          <volume>20</volume>
          (
          <issue>12</issue>
          ):
          <volume>1653</volume>
          {
          <fpage>1662</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Turkay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Pezzotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Binnig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Strobelt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hammer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Keim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fekete</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Palpanas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Rusu</surname>
          </string-name>
          .
          <article-title>Progressive data science: Potential and challenges</article-title>
          . CoRR, abs/
          <year>1812</year>
          .08032,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>M. van den Berg.</surname>
          </string-name>
          <article-title>Applying progressive indexing in the context of approximate query processing</article-title>
          .
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Vitter</surname>
          </string-name>
          .
          <article-title>Random sampling with a reservoir</article-title>
          .
          <source>ACM Trans. Math. Softw.</source>
          ,
          <volume>11</volume>
          (
          <issue>1</issue>
          ):
          <volume>37</volume>
          {
          <fpage>57</fpage>
          ,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>