This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-training.git


The following commit(s) were added to refs/heads/develop by this push:
     new dfb9ad6  Training-35: Druid slides
     new 79b9781  Merge pull request #71 from greatgautam/develop
dfb9ad6 is described below

commit dfb9ad61bb25423c5d8005d5dcd7f8b9fc1a7a0c
Author: Gautam Gupta <[email protected]>
AuthorDate: Mon Dec 7 13:39:06 2020 -0800

    Training-35: Druid slides
---
 content/ApacheDruid/pom.xml                        |  39 +++
 content/ApacheDruid/src/main/asciidoc/index.adoc   | 125 ++++++++
 .../src/main/resources/images/logo-apache.png      | Bin 0 -> 16185 bytes
 content/ApacheDruid/src/main/theme/apache.css      | 349 +++++++++++++++++++++
 4 files changed, 513 insertions(+)

diff --git a/content/ApacheDruid/pom.xml b/content/ApacheDruid/pom.xml
new file mode 100644
index 0000000..ee3693c
--- /dev/null
+++ b/content/ApacheDruid/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.training</groupId>
+    <artifactId>content-parent-pom</artifactId>
+    <version>1.0.0</version>
+    <relativePath/>
+  </parent>
+
+  <groupId>org.apache.training</groupId>
+  <artifactId>apache-druid</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+  <packaging>war</packaging>
+
+  <name>Apache Druid Slides</name>
+  <description></description>
+
+</project>
diff --git a/content/ApacheDruid/src/main/asciidoc/index.adoc 
b/content/ApacheDruid/src/main/asciidoc/index.adoc
new file mode 100644
index 0000000..7765143
--- /dev/null
+++ b/content/ApacheDruid/src/main/asciidoc/index.adoc
@@ -0,0 +1,125 @@
+////
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+////
+:revealjs_progress: true
+:revealjs_slidenumber: true
+:sourcedir: ../java
+
+== What is Apache Druid?
+Apache Druid is a fast and modern analytics database.
+Druid is designed for workflows where fast ad-hoc analytics, instant data 
visibility, or supporting high concurrency is important.
+As such, Druid is often used to power UIs where an interactive, consistent 
user experience is desired.
+
+== Druid High Level Architecture
+
+Druid’s core design combines ideas from data warehouses, timeseries databases, 
and search systems to create a high performance real-time analytics database 
for a broad range of use cases. Druid merges key characteristics of each of the 
3 systems into its ingestion layer, storage format, querying layer, and core 
architecture.
+
+image::http://druid.apache.org/img/diagram-2.png[width=40%]
+
+== Druid Features
+Apache Druid provides following features:
+
+* Column Oriented Storage
+* Streaming and batch ingest
+* Native search indexes
+* Flexible schemas
+* Time-optimized partitioning
+* SQL support
+* Horizontal scalability
+
+== Druid: Integration
+
+Druid is complementary to many open source data technologies in the Apache 
Software Foundation including Apache Kafka, Apache Hadoop, Apache Flink, and 
more.
+
+Druid typically sits between a storage or processing layer and the end user, 
and acts as a query layer to serve analytic workloads.
+
+image::http://druid.apache.org/img/diagram-3.png[width=60%]
+
+== Druid: Ingestion
+
+Druid supports both streaming and batch ingestion. Druid connects to a source 
of raw data, typically a message bus such as Apache Kafka (for streaming data 
loads), or a distributed filesystem such as HDFS (for batch data loads).
+
+Druid converts raw data stored in a source to a more read-optimized format 
(called a Druid “segment”) in a process calling “indexing”.
+
+image::http://druid.apache.org/img/diagram-4.png[width=60%]
+
+
+== Druid: Storage
+
+Like many analytic data stores, Druid stores data in columns. Depending on the 
type of column (string, number, etc), different compression and encoding 
methods are applied. Druid also builds different types of indexes based on the 
column type.
+
+Similar to search systems, Druid builds inverted indexes for string columns 
for fast search and filter.
+
+== Druid: Pre-aggregation
+
+Unlike many traditional systems, Druid can optionally pre-aggregate data as it 
is ingested.
+This pre-aggregation step is known as rollup, and can lead to dramatic storage 
savings.
+
+image::http://druid.apache.org/img/diagram-5.png[width=60%]
+
+== Druid: Querying
+
+Druid supports querying data through JSON-over-HTTP and SQL. In addition to 
standard SQL operators, Druid supports unique operators that leverage its suite 
of approximate algorithms to provide rapid counting, ranking, and quantiles.
+
+image::http://druid.apache.org/img/diagram-6.png[width=60%]
+
+== Druid: High Level Architecture Diagram
+
+image::http://druid.apache.org/img/diagram-7.png[]
+
+== Druid: Architecure
+
+Druid has a microservice-based architecture can be thought of as a 
disassembled database. Each core service in Druid (ingestion, querying, and 
coordination) can be separately or jointly deployed on commodity hardware.
+
+Druid explicitly names every main service to allow the operator to fine tune 
each service based on the use case and workload.
+
+== Druid: Operations
+
+Druid is designed to power applications that need to be up 24 hours a day, 7 
days a week. Druid possesses several features to ensure uptime and no data loss.
+
+* *Data replication*
+* *Independent services*
+* *Automatic data backup*
+* *Rolling updates*
+
+== Druid Operations : Data replication
+
+*Data replication*
+All data in Druid is replicated a configurable number of times so single 
server failures have no impact on queries.
+
+== Druid Operations : Independent services
+
+*Independent services*
+Druid explicitly names all of its main services and each service can be fine 
tuned based on use case. Services can independently fail without impacting 
other services. For example, if the ingestion services fails, no new data is 
loaded in the system, but existing data remains queryable.
+
+== Druid Operations : Automatic data backup
+
+*Automatic data backup*
+Druid automatically backs up all indexed data to a filesystem such as HDFS. 
You can lose your entire Druid cluster and quickly restore it from this backed 
up data.
+
+== Druid Operations : Rolling updates
+
+*Rolling updates*
+You can update a Druid cluster with no downtime and no impact to end users 
through rolling updates. All Druid releases are backwards compatible with the 
previous version.
+
+
+== Further Sources
+Refer official documents on Apache Druid here:
+
+* *Druid Documentation*: http://druid.apache.org/
+* *Druid Technology*: http://druid.apache.org/technology
+
diff --git a/content/ApacheDruid/src/main/resources/images/logo-apache.png 
b/content/ApacheDruid/src/main/resources/images/logo-apache.png
new file mode 100644
index 0000000..44c337b
Binary files /dev/null and 
b/content/ApacheDruid/src/main/resources/images/logo-apache.png differ
diff --git a/content/ApacheDruid/src/main/theme/apache.css 
b/content/ApacheDruid/src/main/theme/apache.css
new file mode 100644
index 0000000..079a53f
--- /dev/null
+++ b/content/ApacheDruid/src/main/theme/apache.css
@@ -0,0 +1,349 @@
+/*
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+*/
+
+section.has-light-background, section.has-light-background h1, 
section.has-light-background h2, section.has-light-background h3, 
section.has-light-background h4, section.has-light-background h5, 
section.has-light-background h6 {
+  color: #fff; }
+
+/*********************************************
+ * GLOBAL STYLES
+ *********************************************/
+body {
+  background-image: url("../../../images/background.jpg");
+  background-repeat: no-repeat;
+  background-size: cover;
+  background-color: #fff; }
+
+.reveal {
+  font-family: Panton-Regular, Helvetica, sans-serif;
+  font-size: 34px;
+  font-weight: normal;
+  color: #000; }
+
+::selection {
+  color: #000;
+  background: #bee4fd;
+  text-shadow: none; }
+
+.reveal .slides > section, .reveal .slides > section > section {
+  line-height: 1.3;
+  font-weight: inherit; }
+
+/*********************************************
+ * HEADERS
+ *********************************************/
+.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
+  margin: 0 0 20px 0;
+  color: #000;
+  font-family: Panton-Regular, Helvetica, sans-serif;
+  font-weight: 600;
+  line-height: 1.2;
+  letter-spacing: normal;
+  text-transform: uppercase;
+  text-shadow: none;
+  word-wrap: break-word; }
+
+.reveal h1 {
+  font-size: 2.5em; }
+
+.reveal h2 {
+  font-size: 1.6em; }
+
+.reveal h3 {
+  font-size: 1.3em; }
+
+.reveal h4 {
+  font-size: 1em; }
+
+.reveal h1 {
+  text-shadow: none; }
+
+/*********************************************
+ * OTHER
+ *********************************************/
+.reveal p {
+  margin: 20px 0;
+  line-height: 1.3; }
+
+/* Ensure certain elements are never larger than the slide itself */
+.reveal img, .reveal video, .reveal iframe {
+  max-width: 95%;
+  max-height: 95%; }
+
+.reveal strong, .reveal b {
+  font-weight: bold; }
+
+.reveal em {
+  font-style: italic; }
+
+.reveal ol, .reveal dl, .reveal ul {
+  display: inline-block;
+  text-align: left;
+  margin: 0 0 0 1em; }
+
+.reveal ol {
+  list-style-type: decimal; }
+
+.reveal ul {
+  list-style-type: disc; }
+
+.reveal ul ul {
+  list-style-type: square; }
+
+.reveal ul ul ul {
+  list-style-type: circle; }
+
+.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
+  display: block;
+  margin-left: 40px; }
+
+.reveal dt {
+  font-weight: bold; }
+
+.reveal dd {
+  margin-left: 40px; }
+
+.reveal q, .reveal blockquote {
+  quotes: none; }
+
+.reveal blockquote {
+  display: block;
+  position: relative;
+  width: 70%;
+  margin: 20px auto;
+  padding: 5px;
+  font-style: italic;
+  background: rgba(255, 255, 255, 0.05);
+  box-shadow: 0 0 2px rgba(0, 0, 0, 0.2); }
+
+.reveal blockquote p:first-child, .reveal blockquote p:last-child {
+  display: inline-block; }
+
+.reveal q {
+  font-style: italic; }
+
+.reveal pre {
+  display: block;
+  position: relative;
+  width: 90%;
+  margin: 20px auto;
+  text-align: left;
+  font-size: 0.55em;
+  font-family: monospace;
+  line-height: 1.2em;
+  word-wrap: break-word;
+  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); }
+
+.reveal code {
+  font-family: monospace; }
+
+.reveal pre code {
+  display: block;
+  padding: 5px;
+  overflow: auto;
+  max-height: 400px;
+  word-wrap: normal;
+  background: #3F3F3F;
+  color: #DCDCDC; }
+
+.reveal table {
+  margin: auto;
+  border-collapse: collapse;
+  border-spacing: 0; }
+
+.reveal table th {
+  font-weight: bold; }
+
+.reveal table th, .reveal table td {
+  text-align: left;
+  padding: 0.2em 0.5em 0.2em 0.5em;
+  border-bottom: 1px solid; }
+
+.reveal table th[align="center"], .reveal table td[align="center"] {
+  text-align: center; }
+
+.reveal table th[align="right"], .reveal table td[align="right"] {
+  text-align: right; }
+
+.reveal table tr:last-child td {
+  border-bottom: none; }
+
+.reveal sup {
+  vertical-align: super; }
+
+.reveal sub {
+  vertical-align: sub; }
+
+.reveal small {
+  display: inline-block;
+  font-size: 0.6em;
+  line-height: 1.2em;
+  vertical-align: top; }
+
+.reveal small * {
+  vertical-align: top; }
+
+/*********************************************
+ * LINKS
+ *********************************************/
+.reveal a {
+  color: #42affa;
+  text-decoration: none;
+  -webkit-transition: color 0.15s ease;
+  -moz-transition: color 0.15s ease;
+  transition: color 0.15s ease; }
+
+.reveal a:hover {
+  color: #8dcffc;
+  text-shadow: none;
+  border: none; }
+
+.reveal .roll span:after {
+  color: #fff;
+  background: #068ee9; }
+
+/*********************************************
+ * IMAGES
+ *********************************************/
+.reveal section img {
+  margin: 15px 0;
+  /*background: rgba(255, 255, 255, 0.12);*/
+  /*border: 4px solid #fff;*/
+  /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);*/ }
+
+.reveal a img {
+  -webkit-transition: all 0.15s linear;
+  -moz-transition: all 0.15s linear;
+  transition: all 0.15s linear; }
+
+.reveal a:hover img {
+  background: rgba(255, 255, 255, 0.2);
+  border-color: #42affa;
+  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
+
+/*********************************************
+ * NAVIGATION CONTROLS
+ *********************************************/
+.reveal .controls div.navigate-left, .reveal .controls 
div.navigate-left.enabled {
+  border-right-color: #42affa; }
+
+.reveal .controls div.navigate-right, .reveal .controls 
div.navigate-right.enabled {
+  border-left-color: #42affa; }
+
+.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled {
+  border-bottom-color: #42affa; }
+
+.reveal .controls div.navigate-down, .reveal .controls 
div.navigate-down.enabled {
+  border-top-color: #42affa; }
+
+.reveal .controls div.navigate-left.enabled:hover {
+  border-right-color: #8dcffc; }
+
+.reveal .controls div.navigate-right.enabled:hover {
+  border-left-color: #8dcffc; }
+
+.reveal .controls div.navigate-up.enabled:hover {
+  border-bottom-color: #8dcffc; }
+
+.reveal .controls div.navigate-down.enabled:hover {
+  border-top-color: #8dcffc; }
+
+/*********************************************
+ * PROGRESS BAR
+ *********************************************/
+.reveal .progress {
+  background: rgba(0, 0, 0, 0.2); }
+
+.reveal .progress span {
+  background: #42affa;
+  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
+  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
+
+/*********************************************
+ * SLIDE NUMBER
+ *********************************************/
+.reveal .slide-number {
+  color: #42affa; }
+
+.reveal .red {
+  color: red;
+}
+
+/*********************************************
+ * C3JS Charts
+ *********************************************/
+
+.c3 {
+  fill: white;  }
+
+.c3 line, .c3 path {
+  stroke: white !important; }
+
+/*********************************************
+ * Custom styling of individual charts
+ *********************************************/
+
+#most-significant-barriers .c3-shape .c3-shape-2 .c3-bar .c3-bar-2 {
+  color: red;
+}
+
+/*********************************************
+ * Footer and Header
+ *********************************************/
+
+.header {
+  position:relative;
+}
+/*.header .left {
+  position:absolute;
+  top: 5px;
+  left: 5px;
+  width: 196px;
+  height: 100px;
+  background-image: url("../../../images/logo-building-iot.png");
+}*/
+.header .right {
+  position:absolute;
+  top: 5px;
+  right: 5px;
+  width: 246px;
+  height: 100px;
+  background-image: url("../../../images/logo-apache.png");
+}
+
+.footer {
+  position:relative;
+}
+/*.footer .left {
+  position:absolute;
+  bottom: 5px;
+  left: 5px;
+  width: 392px;
+  height: 50px;
+  background-image: url("../../../images/logo-company.png");
+}
+.footer .right {
+  position:absolute;
+  bottom: 5px;
+  right: 5px;
+  width: 306px;
+  height: 100px;
+  background-image: url("../../../images/logo-training.png");
+}*/
+

Reply via email to