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 1e0f8c1 Training-36
new fe82ff9 Merge pull request #72 from greatgautam/develop
1e0f8c1 is described below
commit 1e0f8c102fa3046f2a60ddf1e768696b1a9caab7
Author: Gautam Gupta <[email protected]>
AuthorDate: Fri Apr 23 17:35:17 2021 -0700
Training-36
---
content/ApacheAirflow/pom.xml | 39 +++
content/ApacheAirflow/src/main/asciidoc/index.adoc | 111 +++++++
.../src/main/resources/images/logo-apache.png | Bin 0 -> 16185 bytes
content/ApacheAirflow/src/main/theme/apache.css | 349 +++++++++++++++++++++
4 files changed, 499 insertions(+)
diff --git a/content/ApacheAirflow/pom.xml b/content/ApacheAirflow/pom.xml
new file mode 100644
index 0000000..63db653
--- /dev/null
+++ b/content/ApacheAirflow/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-airflow</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>war</packaging>
+
+ <name>Apache Airflow Slides</name>
+ <description></description>
+
+</project>
diff --git a/content/ApacheAirflow/src/main/asciidoc/index.adoc
b/content/ApacheAirflow/src/main/asciidoc/index.adoc
new file mode 100644
index 0000000..59304b7
--- /dev/null
+++ b/content/ApacheAirflow/src/main/asciidoc/index.adoc
@@ -0,0 +1,111 @@
+////
+ 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 Airflow?
+Airflow is a platform to programmatically author, schedule and monitor
workflows.
+
+== Airflow Principles
+
+Airflow is built on following principles:
+
+* Scalable
+* Dynamic
+* Extensible
+* Elegant
+
+== Airflow Principle: Scalable
+
+Airflow has a modular architecture and uses a message queue to orchestrate an
arbitrary number of workers. Airflow is ready to scale to infinity.
+
+== Airflow Principle: Dynamic
+
+Airflow pipelines are defined in Python, allowing for dynamic pipeline
generation. This allows for writing code that instantiates pipelines
dynamically.
+
+== Airflow Principle: Extensible
+
+Easily define your own operators and extend libraries to fit the level of
abstraction that suits your environment.
+
+== Airflow Principle: Elegant
+
+Airflow pipelines are lean and explicit. Parametrization is built into its
core using the powerful Jinja templating engine.
+
+== Airflow Features
+Apache Airflow provides following features:
+
+* Pure Python
+* Useful UI
+* Robust Integrations
+* Easy to Use
+* Open Source
+
+== Airflow Feature: Pure Python
+
+No more command-line or XML black-magic! Use standard Python features to
create your workflows, including date time formats for scheduling and loops to
dynamically generate tasks. This allows you to maintain full flexibility when
building your workflows.
+
+== Airflow Feature: Useful UI
+
+Monitor, schedule and manage your workflows via a robust and modern web
application. No need to learn old, cron-like interfaces. You always have full
insight into the status and logs of completed and ongoing tasks.
+
+== Airflow Feature: Robust Integrations
+
+Airflow provides many plug-and-play operators that are ready to execute your
tasks on Google Cloud Platform, Amazon Web Services, Microsoft Azure and many
other third-party services. This makes Airflow easy to apply to current
infrastructure and extend to next-gen technologies.
+
+== Airflow Feature: Easy to Use
+
+Anyone with Python knowledge can deploy a workflow. Apache Airflow does not
limit the scope of your pipelines; you can use it to build ML models, transfer
data, manage your infrastructure, and more.
+
+== Airflow Feature: Open Source
+
+Wherever you want to share your improvement you can do this by opening a PR.
It’s simple as that, no barriers, no prolonged procedures. Airflow has many
active users who willingly share their experiences. Have any questions? Check
out our buzzing slack.
+
+
+
+== Airflow Integrations
+Airflow supports following main integrations:
+
+* Apache Sqoop
+* Google Cloud Pub/Sub
+* Amazon CloudWatch Logs
+* Google Kubernetes Engine
+* Google Machine learning
+* Amazon Athena
+
+
+== Airflow Providers packages
+Airflow has providers packages include integrations with third party
integrations. They are updated independently of the Apache Airflow core. Some
of these are:
+
+* Airbyte
+* Amazon
+* Apache Beam
+* Apache Cassandra
+* JIRA
+
+
+== Airflow Docker stack
+Airflow has an official Dockerfile and Docker image published in DockerHub as
a convenience package for installation. You can extend and customize the image
according to your requirements and use it in your own deployments.
+
+
+== Further Sources
+Refer official documents on Apache Airflow here:
+
+* *Airflow Documentation*: https://airflow.apache.org/docs/
+* *Airflow Usecases*: https://airflow.apache.org/use-cases/
+
diff --git a/content/ApacheAirflow/src/main/resources/images/logo-apache.png
b/content/ApacheAirflow/src/main/resources/images/logo-apache.png
new file mode 100644
index 0000000..44c337b
Binary files /dev/null and
b/content/ApacheAirflow/src/main/resources/images/logo-apache.png differ
diff --git a/content/ApacheAirflow/src/main/theme/apache.css
b/content/ApacheAirflow/src/main/theme/apache.css
new file mode 100644
index 0000000..079a53f
--- /dev/null
+++ b/content/ApacheAirflow/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");
+}*/
+