You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by lu...@apache.org on 2015/05/27 13:40:15 UTC
svn commit: r1681991 [8/8] - in /incubator/kylin/site: api/ api/2014/
api/2014/12/ api/2014/12/31/ api/2014/12/31/Build-Cube-with-Restful-API/
api/2015/ api/2015/03/ api/2015/03/18/ api/2015/03/18/Restful-Service-Doc/
howto/ howto/2014/ howto/2014/10/ ...
Added: incubator/kylin/site/tutorial/2015/04/17/Kylin-Web-Tutorial/index.html
URL: http://svn.apache.org/viewvc/incubator/kylin/site/tutorial/2015/04/17/Kylin-Web-Tutorial/index.html?rev=1681991&view=auto
==============================================================================
--- incubator/kylin/site/tutorial/2015/04/17/Kylin-Web-Tutorial/index.html (added)
+++ incubator/kylin/site/tutorial/2015/04/17/Kylin-Web-Tutorial/index.html Wed May 27 11:40:12 2015
@@ -0,0 +1,627 @@
+<!--
+* 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.
+-->
+
+<!doctype html>
+<html>
+ <!--
+* 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.
+-->
+
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <title>Apache Kylin | Kylin Web Tutorial</title>
+ <meta name="description" content=" Supported Browsers Windows: Google Chrome, FireFox Mac: Google Chrome, FireFox, Safari">
+ <meta name="author" content="Apache Kylin">
+ <link rel="shortcut icon" href="fav.png" type="image/png">
+
+
+
+<link rel="stylesheet" href="/assets/css/animate.css">
+<!-- Bootstrap -->
+<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+
+<!-- Fonts -->
+<!-- <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700"> -->
+
+<!-- Icons -->
+<link rel="stylesheet" href="/assets/css/font-awesome.min.css">
+
+ <!-- Custom styles -->
+ <link rel="stylesheet" href="/assets/css/styles.css">
+ <link rel="stylesheet" href="/assets/css/docs.css">
+ <link rel="stylesheet" href="/assets/css/pygments.css">
+
+ <link rel="canonical" href="http://kyli.io/tutorial/2015/04/17/Kylin-Web-Tutorial/">
+ <link rel="alternate" type="application/rss+xml" title="kylin.io" href="http://kyli.io/feed.xml" />
+
+<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ //oringal tracker for kylin.io
+ ga('create', 'UA-55534813-1', 'auto');
+ //new tracker for kylin.incubator.apache.org
+ ga('create', 'UA-55534813-2', 'auto', {'name':'incubator'});
+
+ ga('send', 'pageview');
+ ga('incubator.send', 'pageview');
+
+
+</script>
+
+</head>
+
+ <body>
+ <!--
+* 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.
+-->
+
+<header id="header" >
+
+ <div id="head" class="parallax" parallax-speed="3" >
+ <div id="logo" class="text-center"> <img class="img-circle" id="circlelogo" src="/assets/images/kylin_logo.jpg"> <span class="title" >Apache Kylin</span> <span class="tagline">Extreme OLAP Engine for Big Data</span>
+ </div>
+ </div>
+
+
+ <!-- Main Menu -->
+ <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+ <div class="container-fluid" id="nav">
+ <!--
+ <img class="img-circle" width="40px" height="40px" id="circlelogo" src="/assets/images/kylin_logo.jpg">
+ -->
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+
+ </div>
+
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav">
+ <li><a href="/"><b>Home</b></a></li>
+ <li><a href="/docs" >Docs</a></li>
+ <li><a href="/community" >Community</a></li>
+ <li><a href="/blog">Blog</li>
+ <li><a href="/download">Download</li>
+ <li><a href="/about" >About</a></li>
+ <li><a href="/cn" >ä¸æç</a></li>
+ <li><a href="https://twitter.com/apachekylin" target="_blank" class="fa fa-twitter fa-lg" title="Twitter: @ApacheKylin" ></a></li>
+ <li><a href="https://github.com/apache/incubator-kylin" target="_blank" class="fa fa-github-alt fa-lg" title="Github: apache/incubator-kylin" ></a></li>
+ <li><a href="https://www.facebook.com/kylinio" target="_blank" class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container-fluid -->
+</nav>
+ </header>
+
+ <div class="page-content">
+ <header style=" padding:2em 0 0 0">
+ <div class="container" >
+ <h4 class="section-title"><span>Kylin Docs</span></h4>
+ </div>
+ </div>
+ <div class="container">
+ <div class="row">
+ <!--
+* 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.
+-->
+
+<div class="col-md-3 col-lg-3 col-xs-4 aside1 visible-md visible-lg">
+ <ul class="nav nav-pills nav-stacked">
+ <!-- categories -->
+
+ <!-- categories -->
+
+ <!-- categories -->
+
+ <li><a href="#installation" data-toggle="collapse" >Installation</a></li>
+ <div class="collapse in" id="installation">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/installation/2015/03/13/On-Hadoop-CLI-installation/" class="list-group-item-lay pjaxlink">On Hadoop CLI installation</a></li>
+
+ <li><a href="/installation/2015/02/15/Off-Hadoop-CLI-Installation-(Dev-Env-Setup)/" class="list-group-item-lay pjaxlink">Off Hadoop CLI Installation (Dev Env Setup)</a></li>
+
+ <li><a href="/installation/2015/01/22/Kylin-Manual-Installation-Guide/" class="list-group-item-lay pjaxlink">Kylin Manual Installation Guide</a></li>
+
+ <li><a href="/installation/2015/01/22/Advance-settings-of-Kylin-environment/" class="list-group-item-lay pjaxlink">Advance settings of Kylin environment</a></li>
+
+ <li><a href="/installation/2014/12/05/On-Hadoop-Kylin-installation-using-Docker/" class="list-group-item-lay pjaxlink">On Hadoop Kylin installation using Docker</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+ <!-- categories -->
+
+ <!-- categories -->
+
+ <!-- categories -->
+
+
+
+
+
+
+
+
+
+
+
+
+ <li><a href="#howto" data-toggle="collapse" >How to</a></li>
+ <div class="collapse in" id="howto">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/howto/2015/05/18/Export-Kylin-HBase-data/" class="list-group-item-lay pjaxlink">Export Kylin HBase data</a></li>
+
+ <li><a href="/howto/2015/03/18/How-to-use-kylin-remote-jdbc-driver/" class="list-group-item-lay pjaxlink">How to use kylin remote jdbc driver</a></li>
+
+ <li><a href="/howto/2015/03/05/Kylin-Metadata-Store/" class="list-group-item-lay pjaxlink">Kylin Metadata Store</a></li>
+
+ <li><a href="/howto/2015/03/03/How-to-consume-Kylin-REST-API-in-javascript/" class="list-group-item-lay pjaxlink">How to consume Kylin REST API in javascript</a></li>
+
+ <li><a href="/howto/2015/01/04/Run-Kylin-test-case-with-HBase-Mini-Cluster/" class="list-group-item-lay pjaxlink">Run Kylin test case with HBase Mini Cluster</a></li>
+
+ <li><a href="/howto/2014/12/09/New-meta-data-model-structure/" class="list-group-item-lay pjaxlink">New meta data model structure</a></li>
+
+ <li><a href="/howto/2014/11/14/How%20to%20install%20kylin%20in%20your%20Hadoop%20cluster/" class="list-group-item-lay pjaxlink">How to install kylin in your Hadoop cluster</a></li>
+
+ <li><a href="/howto/2014/10/24/How-to-Contribute/" class="list-group-item-lay pjaxlink">How to Contribute</a></li>
+
+ <li><a href="/howto/2014/10/23/Kylin-web-front-end-summary/" class="list-group-item-lay pjaxlink">Kylin web front end summary</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+
+ <li><a href="#tutorial" data-toggle="collapse" >Tutorial</a></li>
+ <div class="collapse in" id="tutorial">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/" class="list-group-item-lay pjaxlink">Kylin and Tableau Tutorial</a></li>
+
+ <li><a href="/tutorial/2015/04/17/Kylin-Web-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Web Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/15/Kylin-Cube-Creation-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Cube Creation Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/11/Kylin-Cube-Permission-Grant-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Cube Permission Grant Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/06/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Cube Build and Job Monitoring Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/05/Kylin-ODBC-Driver-Tutorial/" class="list-group-item-lay pjaxlink">Kylin ODBC Driver Tutorial</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li><a href="#api" data-toggle="collapse" >API</a></li>
+ <div class="collapse in" id="api">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/api/2015/03/18/Restful-Service-Doc/" class="list-group-item-lay pjaxlink">Restful Service Doc</a></li>
+
+ <li><a href="/api/2014/12/31/Build-Cube-with-Restful-API/" class="list-group-item-lay pjaxlink">Build Cube with Restful API</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li><a href="#faq" data-toggle="collapse" >FAQ</a></li>
+ <div class="collapse in" id="faq">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/faq/2015/05/18/FAQ-on-Kylin-Installation-and-Usage/" class="list-group-item-lay pjaxlink">FAQ on Kylin Installation and Usage</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+ </ul>
+</div>
+
+ <div class="col-md-9 col-lg-9 col-xs-14 aside2">
+ <div id="container">
+ <div id="pjax">
+ <!--
+* 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.
+-->
+
+<div class="post" style=" padding:2em 4em 4em 4em">
+
+ <header class="post-header">
+ <h1 class="post-title">Kylin Web Tutorial</h1>
+ <p class="post-meta" >Apr 17, 2015 ⢠Luwei</p>
+ </header>
+
+ <article class="post-content" >
+ <blockquote>
+ <p><strong>Supported Browsers</strong></p>
+
+ <p>Windows: Google Chrome, FireFox</p>
+
+ <p>Mac: Google Chrome, FireFox, Safari</p>
+</blockquote>
+
+<h2 id="access--login">1. Access & Login</h2>
+<p>Host to access: http://your_sandbox_ip:9080
+Login with username/password: ADMIN/KYLIN</p>
+
+<p><img src="/images/Kylin-Web-Tutorial/1 login.png" alt="" /></p>
+
+<h2 id="available-hive-tables-in-kylin">2. Available Hive Tables in Kylin</h2>
+<p>Although Kylin will using SQL as query interface and leverage Hive metadata, kylin will not enable user to query all hive tables since itâs a pre-build OLAP (MOLAP) system so far. To enable Table in Kylin, it will be easy to using âSyncâ function to sync up tables from Hive.</p>
+
+<p><img src="/images/Kylin-Web-Tutorial/2 tables.png" alt="" /></p>
+
+<h2 id="kylin-olap-cube">3. Kylin OLAP Cube</h2>
+<p>Kylinâs OLAP Cubes are pre-calculation datasets from Star Schema Hive tables, Hereâs the web management interface for user to explorer, manage all cubes.Go to <code>Cubes</code> Menu, it will list all cubes available in system:</p>
+
+<p><img src="/images/Kylin-Web-Tutorial/3 cubes.png" alt="" /></p>
+
+<p>To explore more detail about the Cube</p>
+
+<ul>
+ <li>
+ <p>Form View:</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/4 form-view.png" alt="" /></p>
+ </li>
+ <li>
+ <p>SQL View (Hive Query to read data to generate the cube):</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/5 sql-view.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Visualization (Showing the Star Schema behind of this cube):</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/6 visualization.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Access (Grant user/role privileges, Grant operation only open to Admin in beta):</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/7 access.png" alt="" /></p>
+ </li>
+</ul>
+
+<h2 id="write-and-execute-sql-on-web">4. Write and Execute SQL on web</h2>
+<p>Kylinâs web offer a simple query tool for user to run SQL to explorer existing cube, verify result and explorer the result set using #5âs Pivot analysis and visualization</p>
+
+<blockquote>
+ <p><strong>Query Limit</strong></p>
+
+ <ol>
+ <li>
+ <p>Only SELECT query be supported</p>
+ </li>
+ <li>
+ <p>To avoid huge network traffic from server to client, the scan rangeâs threshold be set to 1,000,000 in beta.</p>
+ </li>
+ <li>
+ <p>SQL canât found data from cube will not redirect to Hive in beta</p>
+ </li>
+ </ol>
+</blockquote>
+
+<p>Go to âQueryâ menu:</p>
+
+<p><img src="/images/Kylin-Web-Tutorial/8 query.png" alt="" /></p>
+
+<ul>
+ <li>
+ <p>Source Tables:</p>
+
+ <p>Browser current available Tables (same structure and metadata as Hive):</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/9 query-table.png" alt="" /></p>
+ </li>
+ <li>
+ <p>New Query:</p>
+
+ <p>You can write and execute your query and explorer the result. One query for you reference:</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/10 query-result.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Saved Query:</p>
+
+ <p>Associate with user account, you can get saved query from different browsers even machines.
+ Click âSaveâ in Result area, it will popup for name and description to save current query:</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/11 save-query.png" alt="" /></p>
+
+ <p>Click âSaved Queriesâ to browser all your saved queries, you could direct resubmit it to run or remove it:</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/11 save-query-2.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Query History:</p>
+
+ <p>Only keep the current userâs query history in current bowser, it will require cookie enabled and will lost if you clean up bowserâs cache.Click âQuery Historyâ tab, you could directly resubmit any of them to execute again.</p>
+ </li>
+</ul>
+
+<h2 id="pivot-analysis-and-visualization">5. Pivot Analysis and Visualization</h2>
+<p>Thereâs one simple pivot and visualization analysis tool in Kylinâs web for user to explore their query result:</p>
+
+<ul>
+ <li>
+ <p>General Information:</p>
+
+ <p>When the query execute success, it will present a success indictor and also a cubeâs name which be hit.
+ Also it will present how long this query be executed in backend engine (not cover network traffic from Kylin server to browser):</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/12 general.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Query Result:</p>
+
+ <p>Itâs easy to order on one column.</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/13 results.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Export to CSV File</p>
+
+ <p>Click âExportâ button to save current result as CSV file.</p>
+ </li>
+ <li>
+ <p>Pivot Table:</p>
+
+ <p>Drag and Drop one or more columns into the header, the result will grouping by such columnâs value:</p>
+
+ <p><img src="/images/Kylin-Web-Tutorial/14 drag.png" alt="" /></p>
+ </li>
+ <li>
+ <p>Visualization:</p>
+
+ <p>Also, the result set will be easy to show with different charts in âVisualizationâ:</p>
+
+ <p>note: line chart only available when thereâs at least one dimension with real âDateâ data type of column from Hive Table.</p>
+
+ <ul>
+ <li>Bar Chart:</li>
+ </ul>
+
+ <p><img src="/images/Kylin-Web-Tutorial/15 bar-chart.png" alt="" /></p>
+
+ <ul>
+ <li>Pie Chart:</li>
+ </ul>
+
+ <p><img src="/images/Kylin-Web-Tutorial/16 pie-chart.png" alt="" /></p>
+
+ <ul>
+ <li>Line Chart</li>
+ </ul>
+
+ <p><img src="/images/Kylin-Web-Tutorial/17 line-chart.png" alt="" /></p>
+ </li>
+</ul>
+
+<h2 id="cube-build-job-monitoring">6. Cube Build Job Monitoring</h2>
+<p>Monitor and manage cube build process, diagnostic into the detail and even link to Hadoopâs job information directly:</p>
+
+<p><img src="/images/Kylin-Web-Tutorial/7 job-steps.png" alt="" /></p>
+
+ </article>
+
+</div>
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--
+* 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.
+-->
+
+<footer id="underfooter">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-12 widget" >
+ <div class="widget-body" style="text-align:center">
+ <div>
+ Apache Kylin is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+ </div>
+ <p style="text-align:center" > Apache Kylin is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0. </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <!-- /row of widgets -->
+
+ </div>
+ <div></div>
+
+</footer>
+
+ <script src="/assets/js/jquery-1.9.1.min.js"></script>
+ <script src="/assets/js/bootstrap.min.js"></script>
+ <script src="/assets/js/main.js"></script>
+ </body>
+</html>
Added: incubator/kylin/site/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/index.html
URL: http://svn.apache.org/viewvc/incubator/kylin/site/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/index.html?rev=1681991&view=auto
==============================================================================
--- incubator/kylin/site/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/index.html (added)
+++ incubator/kylin/site/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/index.html Wed May 27 11:40:12 2015
@@ -0,0 +1,580 @@
+<!--
+* 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.
+-->
+
+<!doctype html>
+<html>
+ <!--
+* 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.
+-->
+
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <title>Apache Kylin | Kylin and Tableau Tutorial</title>
+ <meta name="description" content=" There are some limitations of Kylin ODBC driver with Tableau, please read carefully this instruction before you try it. Only support âmanagedâ analysi...">
+ <meta name="author" content="Apache Kylin">
+ <link rel="shortcut icon" href="fav.png" type="image/png">
+
+
+
+<link rel="stylesheet" href="/assets/css/animate.css">
+<!-- Bootstrap -->
+<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+
+<!-- Fonts -->
+<!-- <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700"> -->
+
+<!-- Icons -->
+<link rel="stylesheet" href="/assets/css/font-awesome.min.css">
+
+ <!-- Custom styles -->
+ <link rel="stylesheet" href="/assets/css/styles.css">
+ <link rel="stylesheet" href="/assets/css/docs.css">
+ <link rel="stylesheet" href="/assets/css/pygments.css">
+
+ <link rel="canonical" href="http://kyli.io/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/">
+ <link rel="alternate" type="application/rss+xml" title="kylin.io" href="http://kyli.io/feed.xml" />
+
+<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]-->
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ //oringal tracker for kylin.io
+ ga('create', 'UA-55534813-1', 'auto');
+ //new tracker for kylin.incubator.apache.org
+ ga('create', 'UA-55534813-2', 'auto', {'name':'incubator'});
+
+ ga('send', 'pageview');
+ ga('incubator.send', 'pageview');
+
+
+</script>
+
+</head>
+
+ <body>
+ <!--
+* 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.
+-->
+
+<header id="header" >
+
+ <div id="head" class="parallax" parallax-speed="3" >
+ <div id="logo" class="text-center"> <img class="img-circle" id="circlelogo" src="/assets/images/kylin_logo.jpg"> <span class="title" >Apache Kylin</span> <span class="tagline">Extreme OLAP Engine for Big Data</span>
+ </div>
+ </div>
+
+
+ <!-- Main Menu -->
+ <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+ <div class="container-fluid" id="nav">
+ <!--
+ <img class="img-circle" width="40px" height="40px" id="circlelogo" src="/assets/images/kylin_logo.jpg">
+ -->
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+
+ </div>
+
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav">
+ <li><a href="/"><b>Home</b></a></li>
+ <li><a href="/docs" >Docs</a></li>
+ <li><a href="/community" >Community</a></li>
+ <li><a href="/blog">Blog</li>
+ <li><a href="/download">Download</li>
+ <li><a href="/about" >About</a></li>
+ <li><a href="/cn" >ä¸æç</a></li>
+ <li><a href="https://twitter.com/apachekylin" target="_blank" class="fa fa-twitter fa-lg" title="Twitter: @ApacheKylin" ></a></li>
+ <li><a href="https://github.com/apache/incubator-kylin" target="_blank" class="fa fa-github-alt fa-lg" title="Github: apache/incubator-kylin" ></a></li>
+ <li><a href="https://www.facebook.com/kylinio" target="_blank" class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container-fluid -->
+</nav>
+ </header>
+
+ <div class="page-content">
+ <header style=" padding:2em 0 0 0">
+ <div class="container" >
+ <h4 class="section-title"><span>Kylin Docs</span></h4>
+ </div>
+ </div>
+ <div class="container">
+ <div class="row">
+ <!--
+* 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.
+-->
+
+<div class="col-md-3 col-lg-3 col-xs-4 aside1 visible-md visible-lg">
+ <ul class="nav nav-pills nav-stacked">
+ <!-- categories -->
+
+ <!-- categories -->
+
+ <!-- categories -->
+
+ <li><a href="#installation" data-toggle="collapse" >Installation</a></li>
+ <div class="collapse in" id="installation">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/installation/2015/03/13/On-Hadoop-CLI-installation/" class="list-group-item-lay pjaxlink">On Hadoop CLI installation</a></li>
+
+ <li><a href="/installation/2015/02/15/Off-Hadoop-CLI-Installation-(Dev-Env-Setup)/" class="list-group-item-lay pjaxlink">Off Hadoop CLI Installation (Dev Env Setup)</a></li>
+
+ <li><a href="/installation/2015/01/22/Kylin-Manual-Installation-Guide/" class="list-group-item-lay pjaxlink">Kylin Manual Installation Guide</a></li>
+
+ <li><a href="/installation/2015/01/22/Advance-settings-of-Kylin-environment/" class="list-group-item-lay pjaxlink">Advance settings of Kylin environment</a></li>
+
+ <li><a href="/installation/2014/12/05/On-Hadoop-Kylin-installation-using-Docker/" class="list-group-item-lay pjaxlink">On Hadoop Kylin installation using Docker</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+ <!-- categories -->
+
+ <!-- categories -->
+
+ <!-- categories -->
+
+
+
+
+
+
+
+
+
+
+
+
+ <li><a href="#howto" data-toggle="collapse" >How to</a></li>
+ <div class="collapse in" id="howto">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/howto/2015/05/18/Export-Kylin-HBase-data/" class="list-group-item-lay pjaxlink">Export Kylin HBase data</a></li>
+
+ <li><a href="/howto/2015/03/18/How-to-use-kylin-remote-jdbc-driver/" class="list-group-item-lay pjaxlink">How to use kylin remote jdbc driver</a></li>
+
+ <li><a href="/howto/2015/03/05/Kylin-Metadata-Store/" class="list-group-item-lay pjaxlink">Kylin Metadata Store</a></li>
+
+ <li><a href="/howto/2015/03/03/How-to-consume-Kylin-REST-API-in-javascript/" class="list-group-item-lay pjaxlink">How to consume Kylin REST API in javascript</a></li>
+
+ <li><a href="/howto/2015/01/04/Run-Kylin-test-case-with-HBase-Mini-Cluster/" class="list-group-item-lay pjaxlink">Run Kylin test case with HBase Mini Cluster</a></li>
+
+ <li><a href="/howto/2014/12/09/New-meta-data-model-structure/" class="list-group-item-lay pjaxlink">New meta data model structure</a></li>
+
+ <li><a href="/howto/2014/11/14/How%20to%20install%20kylin%20in%20your%20Hadoop%20cluster/" class="list-group-item-lay pjaxlink">How to install kylin in your Hadoop cluster</a></li>
+
+ <li><a href="/howto/2014/10/24/How-to-Contribute/" class="list-group-item-lay pjaxlink">How to Contribute</a></li>
+
+ <li><a href="/howto/2014/10/23/Kylin-web-front-end-summary/" class="list-group-item-lay pjaxlink">Kylin web front end summary</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+
+ <li><a href="#tutorial" data-toggle="collapse" >Tutorial</a></li>
+ <div class="collapse in" id="tutorial">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/tutorial/2015/04/17/Kylin-and-Tableau-Tutorial/" class="list-group-item-lay pjaxlink">Kylin and Tableau Tutorial</a></li>
+
+ <li><a href="/tutorial/2015/04/17/Kylin-Web-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Web Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/15/Kylin-Cube-Creation-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Cube Creation Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/11/Kylin-Cube-Permission-Grant-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Cube Permission Grant Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/06/Kylin-Cube-Build-and-Job-Monitoring-Tutorial/" class="list-group-item-lay pjaxlink">Kylin Cube Build and Job Monitoring Tutorial</a></li>
+
+ <li><a href="/tutorial/2014/11/05/Kylin-ODBC-Driver-Tutorial/" class="list-group-item-lay pjaxlink">Kylin ODBC Driver Tutorial</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li><a href="#api" data-toggle="collapse" >API</a></li>
+ <div class="collapse in" id="api">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/api/2015/03/18/Restful-Service-Doc/" class="list-group-item-lay pjaxlink">Restful Service Doc</a></li>
+
+ <li><a href="/api/2014/12/31/Build-Cube-with-Restful-API/" class="list-group-item-lay pjaxlink">Build Cube with Restful API</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li><a href="#faq" data-toggle="collapse" >FAQ</a></li>
+ <div class="collapse in" id="faq">
+ <div class="list-group">
+ <ul style="list-style-type:disc">
+
+ <li><a href="/faq/2015/05/18/FAQ-on-Kylin-Installation-and-Usage/" class="list-group-item-lay pjaxlink">FAQ on Kylin Installation and Usage</a></li>
+
+ <ul>
+ </div>
+ </div>
+
+
+ </ul>
+</div>
+
+ <div class="col-md-9 col-lg-9 col-xs-14 aside2">
+ <div id="container">
+ <div id="pjax">
+ <!--
+* 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.
+-->
+
+<div class="post" style=" padding:2em 4em 4em 4em">
+
+ <header class="post-header">
+ <h1 class="post-title">Kylin and Tableau Tutorial</h1>
+ <p class="post-meta" >Apr 17, 2015 ⢠Luwei</p>
+ </header>
+
+ <article class="post-content" >
+ <blockquote>
+ <p>There are some limitations of Kylin ODBC driver with Tableau, please read carefully this instruction before you try it.</p>
+
+ <ul>
+ <li>Only support âmanagedâ analysis path, Kylin engine will raise exception for unexpected dimension or metric</li>
+ <li>Please always select Fact Table first, then add lookup tables with correct join condition (defined join type in cube)</li>
+ <li>Do not try to join between fact tables or lookup tables;</li>
+ <li>You can try to use high cardinality dimensions like seller id as Tableau Filter, but the engine will only return limited seller id in Tableauâs filter now.</li>
+ </ul>
+
+ <p>More detail information or any issue, please contact Kylin Team: <code>kylinolap@gmail.com</code></p>
+</blockquote>
+
+<h3 id="step-1-install-odbc-driver">Step 1. Install ODBC Driver</h3>
+<p>Refer to wiki page <a href="https://github.com/KylinOLAP/Kylin/wiki/Kylin-ODBC-Driver-Tutorial">Kylin ODBC Driver Tutorial</a>.</p>
+
+<h3 id="step-2-connect-to-kylin-server">Step 2. Connect to Kylin Server</h3>
+<blockquote>
+ <p>We recommended to use Connect Using Driver instead of Using DSN since Tableau team will not manage your DSN on Tableau Servers.</p>
+</blockquote>
+
+<p>Connect Using Driver: Select âOther Database(ODBC)â in the left panel and choose KylinODBCDriver in the pop-up window. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/1 odbc.png" alt="" /></p>
+
+<p>Enter your Sever location and credentials: server host, port, username and password.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/2 serverhost.jpg" alt="" /></p>
+
+<p>Click âConnectâ to get the list of projects that you have permission to access. See details about permission in <a href="https://github.com/KylinOLAP/Kylin/wiki/Kylin-Cube-Permission-Grant-Tutorial">Kylin Cube Permission Grant Tutorial</a>. Then choose the project you want to connect in the drop down list. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/3 project.jpg" alt="" /></p>
+
+<p>Click âDoneâ to complete the connection.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/4 done.jpg" alt="" /></p>
+
+<h3 id="step-3-using-single-table-or-multiple-tables">Step 3. Using Single Table or Multiple Tables</h3>
+<blockquote>
+ <p>Limitation</p>
+
+ <ul>
+ <li>Must select FACT table first</li>
+ <li>Do not support select from lookup table only</li>
+ <li>The join condition must match within cube definition</li>
+ </ul>
+</blockquote>
+
+<p><strong>Select Fact Table</strong></p>
+
+<p>Select <code>Multiple Tables</code>.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/5 multipleTable.jpg" alt="" /></p>
+
+<p>Then click <code>Add Table...</code> to add a fact table.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/6 facttable.jpg" alt="" /></p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/6 facttable2.jpg" alt="" /></p>
+
+<p><strong>Select Look-up Table</strong></p>
+
+<p>Click <code>Add Table...</code> to add a look-up table. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/7 lkptable.jpg" alt="" /></p>
+
+<p>Set up the join clause carefully. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/8 join.jpg" alt="" /></p>
+
+<p>Keep add tables through click <code>Add Table...</code> until all the look-up tables have been added properly. Give the connection a name for use in Tableau.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/9 connName.jpg" alt="" /></p>
+
+<p><strong>Using Connect Live</strong></p>
+
+<p>There are three types of <code>Data Connection</code>. Choose the <code>Connect Live</code> option. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/10 connectLive.jpg" alt="" /></p>
+
+<p>Then you can enjoy analyzing with Tableau.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/11 analysis.jpg" alt="" /></p>
+
+<p><strong>Add additional look-up Tables</strong></p>
+
+<p>Click <code>Data</code> in the top menu bar, select <code>Edit Tables...</code> to update the look-up table information.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/12 edit tables.jpg" alt="" /></p>
+
+<h3 id="step-4-using-customized-sql">Step 4. Using Customized SQL</h3>
+<p>To use customized SQL resembles using Single Table/Multiple Tables, except that you just need to paste your SQL in <code>Custom SQL</code> tab and take the same instruction as above.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/19 custom.jpg" alt="" /></p>
+
+<h3 id="step-5-publish-to-tableau-server">Step 5. Publish to Tableau Server</h3>
+<p>Suppose you have finished making a dashboard with Tableau, you can publish it to Tableau Server.
+Click <code>Server</code> in the top menu bar, select <code>Publish Workbook...</code>. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/14 publish.jpg" alt="" /></p>
+
+<p>Then sign in your Tableau Server and prepare to publish. </p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/16 prepare-publish.png" alt="" /></p>
+
+<p>If youâre Using Driver Connect instead of DSN connect, youâll need to additionally embed your password in. Click the <code>Authentication</code> button at left bottom and select <code>Embedded Password</code>. Click <code>Publish</code> and you will see the result.</p>
+
+<p><img src="/images/Kylin-and-Tableau-Tutorial/17 embedded-pwd.png" alt="" /></p>
+
+<h3 id="tips">Tips</h3>
+<ul>
+ <li>
+ <p>Hide Table name in Tableau</p>
+
+ <ul>
+ <li>Tableau will display columns be grouped by source table name, but user may want to organize columns with different structure. Using âGroup by Folderâ in Tableau and Create Folders to group different columns.</li>
+ </ul>
+
+ <p><img src="/images/Kylin-and-Tableau-Tutorial/18 groupby-folder.jpg" alt="" /></p>
+ </li>
+</ul>
+
+ </article>
+
+</div>
+
+
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--
+* 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.
+-->
+
+<footer id="underfooter">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-12 widget" >
+ <div class="widget-body" style="text-align:center">
+ <div>
+ Apache Kylin is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+ </div>
+ <p style="text-align:center" > Apache Kylin is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0. </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <!-- /row of widgets -->
+
+ </div>
+ <div></div>
+
+</footer>
+
+ <script src="/assets/js/jquery-1.9.1.min.js"></script>
+ <script src="/assets/js/bootstrap.min.js"></script>
+ <script src="/assets/js/main.js"></script>
+ </body>
+</html>