Author: buildbot Date: Sat Aug 9 07:33:27 2014 New Revision: 918804 Log: Staging update by buildbot for drill
Added: websites/staging/drill/trunk/content/drill/about.html (with props) websites/staging/drill/trunk/content/drill/architecture.html (with props) websites/staging/drill/trunk/content/drill/community.html (with props) websites/staging/drill/trunk/content/drill/css/arrows.css (with props) websites/staging/drill/trunk/content/drill/css/button.css (with props) websites/staging/drill/trunk/content/drill/css/style.css (with props) websites/staging/drill/trunk/content/drill/download.html (with props) websites/staging/drill/trunk/content/drill/faq.html (with props) websites/staging/drill/trunk/content/drill/fonts/ websites/staging/drill/trunk/content/drill/fonts/icomoon/ websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.eot (with props) websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.svg (with props) websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.ttf (with props) websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.woff (with props) websites/staging/drill/trunk/content/drill/images/ websites/staging/drill/trunk/content/drill/images/apachedrill.png (with props) websites/staging/drill/trunk/content/drill/images/download.png (with props) websites/staging/drill/trunk/content/drill/images/familiarity.png (with props) websites/staging/drill/trunk/content/drill/js/lib/ websites/staging/drill/trunk/content/drill/js/lib/jquery-1.11.1.min.js (with props) websites/staging/drill/trunk/content/drill/js/lib/jquery.easing.1.3.js (with props) websites/staging/drill/trunk/content/drill/js/modernizr.custom.js (with props) websites/staging/drill/trunk/content/drill/js/script.js (with props) websites/staging/drill/trunk/content/drill/overview.html (with props) Modified: websites/staging/drill/trunk/content/ (props changed) websites/staging/drill/trunk/content/drill/index.html websites/staging/drill/trunk/content/drill/intro.html websites/staging/drill/trunk/content/drill/mailing-lists.html websites/staging/drill/trunk/content/drill/source-repository.html websites/staging/drill/trunk/content/drill/team.html Propchange: websites/staging/drill/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Sat Aug 9 07:33:27 2014 @@ -1 +1 @@ -1612127 +1616921 Added: websites/staging/drill/trunk/content/drill/about.html ============================================================================== --- websites/staging/drill/trunk/content/drill/about.html (added) +++ websites/staging/drill/trunk/content/drill/about.html Sat Aug 9 07:33:27 2014 @@ -0,0 +1,93 @@ +<!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Apache Drill - About</title> + + <link href="css/style.css" rel="stylesheet" type="text/css"> + <link href="css/arrows.css" rel="stylesheet" type="text/css"> + <link href="css/button.css" rel="stylesheet" type="text/css"> + + <script language="javascript" type="text/javascript" src="js/lib/jquery-1.11.1.min.js"></script> + <script language="javascript" type="text/javascript" src="js/lib/jquery.easing.1.3.js"></script> + <script language="javascript" type="text/javascript" src="js/modernizr.custom.js"></script> + <script language="javascript" type="text/javascript" src="js/script.js"></script> + + </head> + + <body onResize="resized();"> + + <div class="bui"></div> + + <div id="search"> + <input type="text" placeholder="Enter search term here"> + </div> + + <div id="menu" class="mw"> + + <ul> + <li class="logo"><a href="/index.html"></a></li> + + <li> + <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_blank">Documentation</a> + <ul> + <li><a href="overview.html">Overview</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes" target="_blank">Drill in 10 minutes</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingaFileSystem" target="_blank">Query Files</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHBaseTables" target="_blank">Query HBase</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHiveTables" target="_blank">Query Hive</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/SQL+Overview" target="_blank">SQL Support</a></li> <li><a href="architecture.html">Architecture</a></li> + </ul> + </li> + <li> + <a href="community.html">Community</a> + <ul> + <li><a href="community.html#events">Events and Meetups</a></li> + <li><a href="community.html#mailinglists">Mailing Lists</a></li> + <li><a href="community.html#getinvolved">Get Involved</a></li> + <li><a href="https://issues.apache.org/jira/browse/DRILL/" target="_blank">Issue Tracker</a></li> + <li><a href="https://github.com/apache/incubator-drill" target="_blank">Github</a></li> + </ul> + </li> + <li><a href="faq.html">FAQ</a></li> + + <li class="l"><span> </span></li> + <li class="d"><a href="download.html">Download</a></li> + </ul> + + </div> + + <div class="int_title"> + <h1>Drill Overview</h1> + <p> + Apache Drill provides low latency ad-hoc queries to many different data sources, including nested data. Inspired by Google's Dremel, Drill is designed to scale to 10,000 servers and query petabytes of data in seconds. + </p> + </div> + + <div class="int_text"> + + <h2>High Level Concept<h2> + + <p>There is a strong need in the market for low-latency interactive analysis of large-scale datasets, including nested data (eg, JSON, Avro, Protocol Buffers). This need was identified by Google and addressed internally with a system called Dremel.</p> + + <p>In recent years open source systems have emerged to address the need for scalable batch processing (Apache Hadoop) and stream processing (Storm, Apache S4). Apache Hadoop, originally inspired by Google's internal MapReduce system, is used by thousands of organizations processing large-scale datasets. Apache Hadoop is designed to achieve very high throughput, but is not designed to achieve the sub-second latency needed for interactive data analysis and exploration. Drill, inspired by Google's internal Dremel system, is intended to address this need.</p> + + <p>It is worth noting that, as explained by Google in the original paper, Dremel complements MapReduce-based computing. Dremel is not intended as a replacement for MapReduce and is often used in conjunction with it to analyze outputs of MapReduce pipelines or rapidly prototype larger computations. Indeed, Dremel and MapReduce are both used by thousands of Google employees.</p> + + <p>Like Dremel, Drill supports a nested data model with data encoded in a number of formats such as JSON, Avro or Protocol Buffers. In many organizations nested data is the standard, so supporting a nested data model eliminates the need to normalize the data. With that said, flat data formats, such as CSV files, are naturally supported as a special case of nested data.</p> + + </div> + + <div id="footer" class="mw"> + <div class="wrapper"> + Copyright © 2012 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br> +Apache Incubator, Apache, and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br> + <br> + <strong>DISCLAIMER</strong><br> +Apache Drill is an effort undergoing incubation at The Apache Software Foundation sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further<br> +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<br>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> + </div> + + </body> +</html> Propchange: websites/staging/drill/trunk/content/drill/about.html ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/architecture.html ============================================================================== --- websites/staging/drill/trunk/content/drill/architecture.html (added) +++ websites/staging/drill/trunk/content/drill/architecture.html Sat Aug 9 07:33:27 2014 @@ -0,0 +1,188 @@ +<!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Apache Drill - Architecture</title> + + <link href="css/style.css" rel="stylesheet" type="text/css"> + <link href="css/arrows.css" rel="stylesheet" type="text/css"> + <link href="css/button.css" rel="stylesheet" type="text/css"> + + <script language="javascript" type="text/javascript" src="js/lib/jquery-1.11.1.min.js"></script> + <script language="javascript" type="text/javascript" src="js/lib/jquery.easing.1.3.js"></script> + <script language="javascript" type="text/javascript" src="js/modernizr.custom.js"></script> + <script language="javascript" type="text/javascript" src="js/script.js"></script> + + </head> + + <body onResize="resized();"> + + <div class="bui"></div> + + <div id="search"> + <input type="text" placeholder="Enter search term here"> + </div> + + <div id="menu" class="mw"> + + <ul> + <li class="logo"><a href="/index.html"></a></li> + + <li> + <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_blank">Documentation</a> + <ul> + <li><a href="overview.html">Overview</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes" target="_blank">Drill in 10 minutes</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingaFileSystem" target="_blank">Query Files</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHBaseTables" target="_blank">Query HBase</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHiveTables" target="_blank">Query Hive</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/SQL+Overview" target="_blank">SQL Support</a></li> <li><a href="architecture.html">Architecture</a></li> + </ul> + </li> + <li> + <a href="community.html">Community</a> + <ul> + <li><a href="community.html#events">Events and Meetups</a></li> + <li><a href="community.html#mailinglists">Mailing Lists</a></li> + <li><a href="community.html#getinvolved">Get Involved</a></li> + <li><a href="https://issues.apache.org/jira/browse/DRILL/" target="_blank">Issue Tracker</a></li> + <li><a href="https://github.com/apache/incubator-drill" target="_blank">Github</a></li> + </ul> + </li> + <li><a href="faq.html">FAQ</a></li> + + <li class="l"><span> </span></li> + <li class="d"><a href="download.html">Download</a></li> + </ul> + + </div> + + <div class="int_title int_title_img architecture"> + <h1>Architecture</h1> + <p> + Apache Drill is a low latency distributed query engine for large-scale datasets, including structured and semi-structured/nested data. Inspired by Google's Dremel, Drill is designed to scale to several thousands of nodes and query petabytes of data at interactive speeds that BI/Analytics environments require. + </p> + </div> + + <div class="int_text"> + + <h2>High-Level Architecture<h2> + + <p>Drill includes a distributed execution environment, purpose built for large-scale data processing. At the core of Apache Drill is the 'Drillbit' service, which is responsible for accepting requests from the client, processing the queries, and returning results to the client.</p> + + <p>A Drillbit service can be installed and run on all of the required nodes in a Hadoop cluster to form a distributed cluster environment. When a Drillbit runs on each data node in the cluster, Drill can maximize data locality during query execution without moving data over the network or between nodes. Drill uses ZooKeeper to maintain cluster membership and health-check information.</p> + +<p>Note that though Drill works in a Hadoop cluster environment, Drill is not tied to Hadoop and can run in any distributed cluster environment. The only pre-requisite for Drill is Zookeeper.</p> + + <h2>Query Flow in Drill</h2> + + <p> + + The following image represents the flow of a Drill query: + <img src="images/arc-1.jpg" alt="The flow of a Drill query" width="550"> + + The flow of a Drill query typically involves the following steps: + + </p> + <ul class="num"> + <li>The Drill client issues a query. A Drill client is a JDBC, ODBC, command line interface or a REST API. Any Drillbit in the cluster can accept queries from the clients. There is no master-slave concept.</li> + <li>The Drillbit then parses the query, optimizes it, and generates a distributed query plan that is optimized for fast and efficient execution.</li> + <li>The Drillbit that accepts the query becomes the driving Drillbit node for the request. It gets a list of available Drillbit nodes in the cluster from ZooKeeper. The driving Drillbit determines the appropriate nodes to execute various query plan fragments to maximize data locality.</li> + <li> The Drillbit schedules the execution of query fragments on individual nodes according to the execution plan.</li> + <li>The individual nodes finish their execution and return data to the driving Drillbit.</li> + <li>The driving Drillbit streams results back to the client.</li> + </ul> + + <h2>Core Modules within a Drillbit</h2> + <p>The following image represents Drillbit components:</p> + + <img src="images/arc-2.jpg" alt="Drillbit components" width="525"> + + <p>⢠RPC end point: Drill exposes a low overhead protobuf-based RPC protocol to communicate with the clients. Additionally, a C++ and Java API layers are also available for the client applications to interact with Drill. Clients can communicate to a specific Drillbit directly or go through a ZooKeeper quorum to discover the available Drillbits before submitting queries. It is recommended that the clients always go through ZooKeeper to shield clients from the intricacies of cluster management, such as the addition or removal of nodes.</p> + <p>⢠SQL parser: Drill uses Optiq, the open source framework, to parse incoming queries. The output of the parser component is a language agnostic, computer-friendly logical plan that represents the query.</p> + <p>⢠Optimizer: Drill uses various standard database optimizations such as rule based/cost based, as well as data locality and other optimization rules exposed by the storage engine to re-write and split the query. The output of the optimizer is a distributed physical query plan that represents the most efficient and fastest way to execute the query across different nodes in the cluster.</p> + <p>⢠Execution engine: Drill provides a MPP execution engine built to perform distributed query processing across the various nodes in the cluster. </p> + <p>⢠Storage plugin interfaces: Drill serves as a query layer on top of several data sources. Storage plugins in Drill represent the abstractions that Drill uses to interact with the data sources. Storage plugins provide Drill with the following information:</p> + + <p class="l1"> + ⢠Metadata available in the source<br> + ⢠Interfaces for Drill to read from and write to data sources<br> + ⢠Location of data and a set of optimization rules to help with efficient and faster execution of Drill queries on a specific data source + </p> + <p> + In the context of Hadoop, Drill provides storage plugins for files and HBase/M7. Drill also integrates with Hive as a storage plugin since Hive provides a metadata abstraction layer on top of files, HBase/M7, and provides libraries to read data and operate on these sources (SerDes and UDFs). + </p> + + <p>When users query files and HBase/M7 with Drill, they can do it directly or go through Hive if they have metadata defined there. Drill integration with Hive is only for metadata. Drill does not invoke the Hive execution engine for any requests. </p> + + <p>⢠Distributed cache: Drill uses a distributed cache to manage metadata (not the data) and configuration information across various nodes. Sample metadata information that is stored in the cache includes query plan fragments, intermediate state of the query execution, and statistics. Drill uses Infinispan as its cache technology.</p> + + <h2>Architectural Highlights</h2> + + <p> + The goal for Drill is to bring the SQL ecosystem and performance of the relational systems to Hadoop scale data WITHOUT compromising on the flexibility of Hadoop/NoSQL systems. There are several core architectural elements in Apache Drill that make it a highly flexible and efficient query engine. + </p> + + <h3>Flexibility</h3> + <ul> + <li><p><strong>Dynamic schema discovery</strong>: Drill does not require schema or type specification for the data in order to start the query execution process. Instead, Drill starts processing the data in units called record-batches and discovers the schema on the fly during processing. Self-describing data formats such as Parquet, JSON, AVRO and NoSQL databases have schema specified as part of the data itself, which will be leveraged by Drill dynamically at the query time. Schema can change over the course of a Drill query, so all of the Drill operators are designed to reconfigure themselves when such schema changing events occur. + </p> +<li><p><strong>Flexible data model</strong>: Drill is purpose-built from ground up for complex/multi-structured data commonly seen in Hadoop/NoSQL applications such as social/mobile, clickstream, logs and sensor equipped IOT. From a user point of view, Drill allows access to nested data attributes, just like SQL columns, and provides intuitive extensions to easily operate on them. From an architecture point of view, Drill provides a flexible hierarchical columnar data model that can represent complex, highly dynamic and evolving data models and allows efficient processing of it without need to flatten or materialize it either design time or at execution time. Relational data in Drill is treated as a special or simplified case of complex/multi-structured data. + </p> +<li><p><strong>Decentralized metadata</strong>: Unlike other SQL-on-Hadoop technologies or any traditional relational database, Drill does not have a centralized metadata requirement. In order to query data through Drill, users do not need to create and manage tables/views in a metadata repository, or rely on a database administrator group for such a function. <br><br> +Drill metadata is derived from the storage plugins that correspond to data sources. Drill supports a varied set of storage plugins that provide a spectrum of metadata ranging from full metadata such as for Hive, partial metadata such as for HBase, or no central metadata such as for files. <br><br> +De-centralized metadata also means that Drill is NOT tied to a single Hive repository either. Users can query from multiple Hive repositories in a single query and then combine data with information from HBase tables or a file in the distributed file system. <br><br> +Users also have the ability to create metadata (tables/views/databases) within Drill using the SQL DDL syntax. De-centralized metadata is applicable during metadata creation. Drill allows persisting metadata in one of the underlying data sources. <br><br> +From a client access perspective, Drill metadata is organized just like a traditional DB <br>(Databases->Tables/Views->Columns). The metadata is accessible through the ANSI standard INFORMATION_SCHEMA database. + </p> +<li><p><strong>Extensibility</strong>: Drill provides an extensible architecture at all layers, including storage plugin layer, query layer, query optimization/execution, and client APIs. You can customize any layer for the specific needs of an organization or you can extend the layer to a broader array of use cases. <br><br> +Drill provides a built in classpath scanning and plugin concept to add additional storage plugins, functions, and operators with minimal configuration. +<br><br> +The following list provides a few examples of Drill's extensible architectural capabilities: +<ul> +<li>A high performance Java API to implement custom UDFs/UDAFs +<li>Ability to go beyond Hadoop by implementing custom storage plugins to other data sources such as Oracle/MySQL or NoSQL stores, such as Mongo or Cassandra +<li>An API to implement custom operators +<li>Support for direct execution of strongly specified JSON based logical and physical plans to help with the simplification of testing, and to enable integration of alternative query languages other than SQL. + </p> +</ul> + +</ul> + +<h3>Performance</h3> + +<p>Drill is designed from the ground up for high performance on large datasets. Few core elements of Drill processing that help Drill achieve its performance include:</p> +<ul> +<li><p><strong>Distributed engine</strong>: Drill provides a powerful distributed execution engine for processing queries. Users can submit requests to any node in the cluster. You can simply add new nodes to the cluster to scale for larger volumes of data, support more users or to improve performance. + </p> +<li><p><strong>Columnar execution</strong>: Drill optimizes for both columnar storage and execution by using an in-memory data model that is hierarchical and columnar. When working with data stored in columnar formats such as Parquet, Drill avoids disk access for columns that are not involved in an analytic query. Drill also provides an execution layer that performs SQL processing directly on columnar data without row materialization. The combination of optimizations for columnar storage and direct columnar execution significantly lowers memory footprints and provides faster execution of BI/Analytic type of workloads. + </p> +<li><p><strong>Vectorization</strong>: Rather than operating on single values from a single table record at one time, vectorization in Drill allows the CPU to operate on vectors, referred to as a Record Batches. Record Batches are arrays of values from many different records. The technical basis for efficiency of vectorized processing is modern chip technology with deep-pipelined CPU designs. Keeping all pipelines full to achieve efficiency near peak performance is something impossible to achieve in traditional database engines, primarily due to code complexity. + </p> +<li><p><strong>Runtime compilation</strong>: +Runtime compilation is faster compared to the interpreted execution. Drill generates highly efficient custom code for every single query for every single operator. Here is a quick overview of the Drill compilation/code generation process at a glance. +<br><img src="images/drillcompiler.png" width="500"> + </p> +<li><p><strong>Optimistic and pipelined query execution</strong>: Drill adopts an optimistic execution model to process queries. Drill assumes that failures are infrequent within the short span of a query and therefore does not spend time creating boundaries or checkpoints to minimize recovery time. Failures at node level are handled gracefully. In the instance of a single query failure, the query is rerun. Drill execution uses a pipeline model where all tasks are scheduled at once. The query execution happens in-memory as much as possible to move data through task pipelines, persisting to disk only if there is memory overflow. + </p> +</ul> + + + + + + </div> + + <div id="footer" class="mw"> + <div class="wrapper"> + Copyright © 2012 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br> +Apache Incubator, Apache, and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br> + <br> + <strong>DISCLAIMER</strong><br> +Apache Drill is an effort undergoing incubation at The Apache Software Foundation sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further<br> +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<br>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> + </div> + + </body> +</html> Propchange: websites/staging/drill/trunk/content/drill/architecture.html ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/community.html ============================================================================== --- websites/staging/drill/trunk/content/drill/community.html (added) +++ websites/staging/drill/trunk/content/drill/community.html Sat Aug 9 07:33:27 2014 @@ -0,0 +1,199 @@ +<!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Apache Drill - Architecture</title> + + <link href="css/style.css" rel="stylesheet" type="text/css"> + <link href="css/arrows.css" rel="stylesheet" type="text/css"> + <link href="css/button.css" rel="stylesheet" type="text/css"> + + <script language="javascript" type="text/javascript" src="js/lib/jquery-1.11.1.min.js"></script> + <script language="javascript" type="text/javascript" src="js/lib/jquery.easing.1.3.js"></script> + <script language="javascript" type="text/javascript" src="js/modernizr.custom.js"></script> + <script language="javascript" type="text/javascript" src="js/script.js"></script> + + </head> + + <body onResize="resized();"> + + <div class="bui"></div> + + <div id="search"> + <input type="text" placeholder="Enter search term here"> + </div> + + <div id="menu" class="mw"> + + <ul> + <li class="logo"><a href="/index.html"></a></li> + + <li> + <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_blank">Documentation</a> + <ul> + <li><a href="overview.html">Overview</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes" target="_blank">Drill in 10 minutes</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingaFileSystem" target="_blank">Query Files</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHBaseTables" target="_blank">Query HBase</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHiveTables" target="_blank">Query Hive</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/SQL+Overview" target="_blank">SQL Support</a></li> + <li><a href="architecture.html">Architecture</a></li> + </ul> + </li> + <li> + <a href="community.html">Community</a> + <ul> + <li><a href="community.html#events">Events and Meetups</a></li> + <li><a href="community.html#mailinglists">Mailing Lists</a></li> + <li><a href="community.html#getinvolved">Get Involved</a></li> + <li><a href="https://issues.apache.org/jira/browse/DRILL/" target="_blank">Issue Tracker</a></li> + <li><a href="https://github.com/apache/incubator-drill" target="_blank">Github</a></li> + </ul> + </li> + <li><a href="faq.html">FAQ</a></li> + <li class="l"><span> </span></li> + <li class="d"><a href="download.html">Download</a></li> + </ul> + + </div> + + <div class="int_title int_title_img community"> + <h1>Community</h1> + </div> + + <div class="int_text"> + + <a name="events" class="anchor" style="position:relative; top:-60px;"></a> + <h2>Events and Meetups<h2> + + <p>Upcoming Events</p> + + <table class="table" cellpadding="0" cellspacing="0"> + <thead> + <tr> + <th> </th> + <th>Meetup</th> + <th>Location</th> + <th>Speaker</th> + <th>Link</th> + </tr> + </thead> + <tbody> + <tr> + <td>8/7/14</td> + <td>Big Data Analytics</td> + <td>Melbourne</td> + <td>MC Srivas</td> + <td><a rel="nofollow" href="http://www.meetup.com/Big-Data-Analytics-Meetup-Group/events/187838162/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>8/13/14</td> + <td>Chicago HUG</td> + <td>Chicago</td> + <td>Jim Scott</td> + <td><a rel="nofollow" href="http://www.meetup.com/Chicago-area-Hadoop-User-Group-CHUG/events/197729112/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>8/20/14</td> + <td>Pittsburgh HUG</td> + <td>Pittsburgh</td> + <td>MC Srivas</td> + <td><a rel="nofollow" href="http://www.meetup.com/HUG-Pittsburgh/events/195143712/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>8/21/14</td> + <td>Heartland Big Data</td> + <td>Omaha, NE</td> + <td>TBD</td> + <td><a rel="nofollow" href="http://www.meetup.com/Heartland-Big-Data-Meetup/events/191993642/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>8/26/14</td> + <td>Data Mining</td> + <td>San Francisco, CA</td> + <td>Tomer Shiran</td> + <td><a rel="nofollow" href="http://www.meetup.com/Data-Mining/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>10/8/14</td> + <td>SF HUG</td> + <td>San Francisco, CA</td> + <td>Tomer Shiran</td> + <td><a rel="nofollow" href="http://www.meetup.com/hadoopsf/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>10/28/14</td> + <td>Big Data Madison</td> + <td>Madison, WI</td> + <td>TBD</td> + <td><a rel="nofollow" href="http://www.meetup.com/BigDataMadison/events/194359202/" target="_new">Click Here</a></td> + </tr> + <tr> + <td>TBD</td> + <td>NorCal Big Dat</td> + <td>Sacramento, CA</td> + <td>TBD</td> + <td><a rel="nofollow" href="http://www.meetup.com/NorCal-BigData/?a=mm2_l6" target="_new">Click Here</a></td> + </tr> + </tbody> + </table> + + <a name="mailinglists" class="anchor"></a> + <h2>Mailing Lists<h2> + + <table class="table ul" cellpadding="0" cellspacing="0"> + <thead> + <tr> + <th>Name</th> + <th>Subscribe</th> + <th>Unsubscribe</th> + <th>Post</th> + <th>Archive</th> + </tr> + </thead> + <tbody> + <tr> + <td>User List</td> + <td><a rel="nofollow" href="mailto:drill-user-subscr...@incubator.apache.org">Subscribe</a></td> + <td><a rel="nofollow" href="mailto:drill-user-unsubscr...@incubator.apache.org">Unsubscribe</a></td> + <td><a rel="nofollow" href="mailto:drill-u...@incubator.apache.org">Post</a></td> + <td><a rel="nofollow" href="http://mail-archives.apache.org/mod_mbox/incubator-drill-user/">mail-archives.apache.org</a></td> + </tr> + <tr> + <td>Developer List</td> + <td><a rel="nofollow" href="mailto:drill-dev-subscr...@incubator.apache.org">Subscribe</a></td> + <td><a rel="nofollow" href="mailto:drill-dev-unsubscr...@incubator.apache.org">Unsubscribe</a></td> + <td><a rel="nofollow" href="mailto:drill-...@incubator.apache.org">Post</a></td> + <td><a rel="nofollow" href="http://mail-archives.apache.org/mod_mbox/incubator-drill-dev/">mail-archives.apache.org</a></td> + </tr> + </tbody> + </table> + + <a name="getinvolved" class="anchor"></a> + <h2>Get Involved</h2> + + <p> + <a rel="nofollow" href="https://cwiki.apache.org/confluence/display/DRILL/Contributing" target="_blank">How to contribute to Drill</a><br> + <a rel="nofollow" href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Contribution+Ideas" target="_blank">Contribution Ideas</a><br> + <a rel="nofollow" href="https://plus.google.com/hangouts/_/event/ci4rdiju8bv04a64efj5fedd0lc" target="_blank">Monthly Google Hangout - First Tuesday of each month (Next hangout: <span class="nextHangout">August 5th</span>) 10:00am PDT</a><br> + Twitter: <a rel="nofollow" href="https://twitter.com/ApacheDrill" target="_blank">@ApacheDrill</a><br> + Wiki: <a rel="nofollow" href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_blank">Apache Drill Wiki</a><br> + <a rel="nofollow" href="http://www.meetup.com/Bay-Area-Apache-Drill-User-Group/" target="_blank">Drill Meetup Group</a><br> + <a rel="nofollow" href="http://www.slideshare.net/ApacheDrill/" target="_blank">Apache Drill Slideshare</a> + </p> + + </div> + + <div id="footer" class="mw"> + <div class="wrapper"> + Copyright © 2012-2014 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br> +Apache Incubator, Apache, and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br> + <br> + <strong>DISCLAIMER</strong><br> +Apache Drill is an effort undergoing incubation at The Apache Software Foundation sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further<br> +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<br>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> + </div> + + </body> +</html> Propchange: websites/staging/drill/trunk/content/drill/community.html ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/css/arrows.css ============================================================================== --- websites/staging/drill/trunk/content/drill/css/arrows.css (added) +++ websites/staging/drill/trunk/content/drill/css/arrows.css Sat Aug 9 07:33:27 2014 @@ -0,0 +1,86 @@ +@charset "UTF-8"; +/* CSS Document */ + +.nav-circlepop a { + width: 50px; + height: 50px; +} + +.nav-circlepop a::before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 50%; + background: #fff; + content: ''; + opacity: 0; + -webkit-transition: -webkit-transform 0.3s, opacity 0.3s; + transition: transform 0.3s, opacity 0.3s; + -webkit-transform: scale(0.9); + transform: scale(0.9); +} + +.nav-circlepop .icon-wrap { + position: relative; + display: block; + margin: 10% 0 0 10%; + width: 80%; + height: 80%; +} + +.nav-circlepop a.next .icon-wrap { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.nav-circlepop .icon-wrap::before, +.nav-circlepop .icon-wrap::after { + position: absolute; + left: 25%; + width: 3px; + height: 50%; + background: #fff; + content: ''; + -webkit-transition: -webkit-transform 0.3s, background-color 0.3s; + transition: transform 0.3s, background-color 0.3s; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.nav-circlepop .icon-wrap::before { + -webkit-transform: translateX(-50%) rotate(30deg); + transform: translateX(-50%) rotate(30deg); + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; +} + +.nav-circlepop .icon-wrap::after { + top: 50%; + -webkit-transform: translateX(-50%) rotate(-30deg); + transform: translateX(-50%) rotate(-30deg); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} + +.nav-circlepop a:hover::before { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); +} + +.nav-circlepop a:hover .icon-wrap::before, +.nav-circlepop a:hover .icon-wrap::after { + background: #4aaf4c; +} + +.nav-circlepop a:hover .icon-wrap::before { + -webkit-transform: translateX(-50%) rotate(45deg); + transform: translateX(-50%) rotate(45deg); +} + +.nav-circlepop a:hover .icon-wrap::after { + -webkit-transform: translateX(-50%) rotate(-45deg); + transform: translateX(-50%) rotate(-45deg); +} \ No newline at end of file Propchange: websites/staging/drill/trunk/content/drill/css/arrows.css ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/css/button.css ============================================================================== --- websites/staging/drill/trunk/content/drill/css/button.css (added) +++ websites/staging/drill/trunk/content/drill/css/button.css Sat Aug 9 07:33:27 2014 @@ -0,0 +1,121 @@ +@font-face { + font-family: 'icomoon'; + src:url('../fonts/icomoon/icomoon.eot'); + src:url('../fonts/icomoon/icomoon.eot?#iefix') format('embedded-opentype'), + url('../fonts/icomoon/icomoon.woff') format('woff'), + url('../fonts/icomoon/icomoon.ttf') format('truetype'), + url('../fonts/icomoon/icomoon.svg#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* General styles for all types of buttons */ +.progress-button { + position: relative; + display: block; + margin:0; + padding: 0 30px; + outline: none; + border: none; + background: #4aaf4c; + color: #fff; + text-transform: uppercase; + overflow:hidden; + line-height:50px; +} + +.progress-button[disabled], +.progress-button[disabled].state-loading { + cursor: default; +} + +.progress-button .content { + position: relative; + display: block; +} + +.progress-button .content::before, +.progress-button .content::after { + position: absolute; + right: 20px; + color: #0e7138; + font-family: "icomoon"; + opacity: 0; + -webkit-transition: opacity 0.3s 0.3s; + transition: opacity 0.3s 0.3s; +} + +.progress-button .content::before { + content: "\e600"; /* Checkmark for success */ +} + +.progress-button .content::after { + content: "\e601"; /* Cross for error */ +} + +.progress-button.state-success .content::before, +.progress-button.state-error .content::after { + opacity: 1; +} + +.notransition { + -webkit-transition: none !important; + transition: none !important; +} + +.progress-button .progress { + background: #148544; +} + +.progress-button .progress-inner { + position: absolute; + left: 0; + top:0; + background: #0e7138; +} + +.progress-button[data-horizontal] .progress-inner { + top: 0; + width: 0; + height: 100%; + -webkit-transition: width 0.3s, opacity 0.3s; + transition: width 0.3s, opacity 0.3s; +} + +.progress-button[data-vertical] .progress-inner { + bottom: 0; + width: 100%; + height: 0; + -webkit-transition: height 0.3s, opacity 0.3s; + transition: height 0.3s, opacity 0.3s; +} + +/* Fill horizontal */ +/* ====================== */ + +.progress-button[data-style="fill"][data-horizontal] { + overflow: hidden; +} + +.progress-button[data-style="fill"][data-horizontal] .content { + z-index: 10; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; +} + +.progress-button[data-style="fill"][data-horizontal] .content::before, +.progress-button[data-style="fill"][data-horizontal] .content::after { + top: 100%; + right: auto; + left: 50%; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +.progress-button[data-style="fill"][data-horizontal].state-success .content, +.progress-button[data-style="fill"][data-horizontal].state-error .content { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); +} Propchange: websites/staging/drill/trunk/content/drill/css/button.css ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/css/style.css ============================================================================== --- websites/staging/drill/trunk/content/drill/css/style.css (added) +++ websites/staging/drill/trunk/content/drill/css/style.css Sat Aug 9 07:33:27 2014 @@ -0,0 +1,836 @@ +@charset "UTF-8"; +/* CSS Document */ + +@import url(http://fonts.googleapis.com/css?family=Lato:400,300,700); + +* { outline:none; } + +body { + font-family:"Lato"; + margin:0; + padding:0; +} + +.mw { min-width:999px; width:100%; } + +.nw { white-space:nowrap; } + +pre, code { + background-color: #f7f7f7; + border: 1px solid #ddd; + font-size: 13px; + line-height: 19px; + overflow-x: auto; + overflow-y: auto; + padding: 2px 4px; + border-radius: 3px; + word-wrap: normal; + white-space: pre !important; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +a.anchor { + display:none; + font-size:0px; + position:absolute; + margin-top:-50px; +} + +.home_txt a.anchor { + margin-top:-90px; +} + +#menu { + position:fixed; + top:0; + width:100%; + z-index:5; +} + +#menu.r { + position:absolute; +} + +#menu ul { + background:#051221; + display:block; + font-size:0px; + list-style:none; + overflow:hidden; + padding:0; + text-align:right; + /* + -webkit-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.4); + box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.4); + */ +} + +#menu ul li { + display:inline-block; + font-size:14px; + margin:0; + padding:0; +} + +#menu ul li.logo { + float:left; + padding-left:30px; +} + +#menu ul li.logo:hover { background:none; } + +#menu ul li.logo a { + background:url(../images/apachedrill.png) no-repeat center; + background-size:auto 27px; + display:block; + height:50px; + padding:0; + width:80px; +} + +#menu ul li a { + color:#FFF; + text-decoration:none; + line-height:50px; + padding:14px 20px; +} +/* +#menu ul li.d, #menu ul li.d:hover { + background:#4aaf4c; + font-weight:bold; + text-transform:uppercase; +} +*/ +#menu ul li.d, #menu ul li.d:hover { + background:url(../images/download-ico.png) no-repeat left center #4aaf4c; + background-size:13px auto; + background-position:24px 16px; + display:block; + float:right; + font-size:12px; + height:50px; + text-transform:uppercase; + overflow:hidden; +} + +#menu ul li.d:hover { + background-color:#348436; +} + +#menu ul li.d * { + cursor:pointer; +} + +#menu ul li.d a { + padding:0 30px 0 45px; + display:block; + height:50px; +} + + +#menu ul li.l { + cursor:pointer; +} + +#menu ul li.l span { + background:url(../images/len.png) no-repeat center; + background-size:auto 16px; + display:block; + line-height:50px; + padding:0 20px; + width:16px; +} + +#menu ul li.l.open { + background-color:#145aa8; +} + +#menu ul li ul { + background:#1a6bc7; + display:none; + margin:0; + padding:0; + position:absolute; + text-align:left; +} + +#menu ul li ul li { + display:block; +} + +#menu ul li ul li a { + display:block; + line-height:30px; + padding:3px 20px; +} + +#menu ul li ul li a:hover { + background:#145aa8; +} + +#menu ul li:hover { + background:#1a6bc7; +} + +#menu ul li:hover ul { + display:block; +} + +#subhead { + background:#145aa8; + color:#FFF; + font-size:12px; + font-weight:bold; + height:40px; + line-height:40px; + left:0px; + letter-spacing:1px; + right:0px; + position:fixed; + text-align:center; + text-transform:uppercase; + top:10px; + z-index:4; + + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +#subhead.show { + top:50px; +} + +#subhead ul { + list-style:none; + margin:0; + padding:0; +} + +#subhead ul li { + display:inline-block; + list-style:none; + margin:0; + padding:0 35px 0 35px; +} + +#subhead ul li a { + background-size:16px auto; + background-position:left center; + background-repeat:no-repeat; + color:#FFF; + display:block; + padding:0 0 0 25px; + text-decoration:none; +} + +#subhead ul li.ag a { + background-image:url(../images/agility-w.png); +} + +#subhead ul li.fl a { + background-image:url(../images/flexibility-w.png); +} + +#subhead ul li.fa a { + background-image:url(../images/familiarity-w.png); +} + + +#search { + background:#145aa8; + display:none; + left:0px; + right:0px; + padding:30px; + position:fixed; + top:50px; + z-index:5; +} + +#search.r { + position:absolute; + width:779px; +} + +#search input { + background:transparent; + border:none; + color:#FFF; + font-family:"Lato"; + font-size:34px; + font-weight:lighter; + width:100%; +} + +#header { + background:url(../images/reel-bg.png) no-repeat; + background-size:cover; + height:300px; + overflow:hidden; + position:relative; +} + +#header .scroller { + margin-left:0px; + overflow:hidden; +} + +#header .scroller .item { + + float:left; + height:300px; + position:relative; + width:100%; + z-index:1; +} + +#header .scroller .item p a { + color:#FFF; + font-weight:bold; + overflow: hidden; + text-decoration:none; + + position: relative; + display: inline-block; + outline: none; + vertical-align: bottom; + text-decoration: none; + white-space: nowrap; +} + +#header .scroller .item p a::before { + position: absolute; + top: 0; + left: 0; + z-index: -1; + width: 100%; + height: 100%; + background: rgba(149,165,166,0.4); + content: ''; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + -webkit-transform: scaleY(0.618) translateX(-100%); + transform: scaleY(0.618) translateX(-100%); +} + +#header .scroller .item p a:hover::before, +#header .scroller .item p a:focus::before { + -webkit-transform: scaleY(0.618) translateX(0); + transform: scaleY(0.618) translateX(0); +} + + +#header .scroller .item .tc { + color:#FFF; + margin-left:80px; + position:absolute; + width:530px; +} + +#header .scroller .item .tc h1 { + font-size:36px; + font-weight:lighter; + margin:0 0 8px 0; + padding:0; +} + +#header .scroller .item .tc p { + font-size:14px; + font-weight:lighter; + line-height:24px; + margin:0; + padding:0; +} + +#header .scroller .item .btn { + background: none; + border: 2px solid #fff; + cursor: pointer; + color:#FFF; + display: inline-block; + font-size:12px; + font-weight: bold; + outline: none; + margin-top:18px; + position: relative; + padding: 5px 30px; + text-decoration:none; + text-transform: uppercase; + + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + transition: all 0.3s; +} + +#header .scroller .item .btn:after { + content: ''; + position: absolute; + z-index: -1; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + transition: all 0.3s; +} + +#header .scroller .item .btn-1c:after { + width: 0%; + height: 100%; + top: 0; + left: 0; + background: #fff; +} + +#header .scroller .item .btn-1c:hover, +#header .scroller .item .btn-1c:active { + color: #0e83cd; +} + +#header .scroller .item .btn-1c:hover:after, +#header .scroller .item .btn-1c:active:after { + width: 100%; +} + +#header .aLeft { + cursor:pointer; + height:30px; + left:20px; + margin-top:-15px; + position:absolute; + top:50%; + width:30px; + z-index:2; +} + +#header .aRight { + cursor:pointer; + height:30px; + right:20px; + margin-top:-15px; + position:absolute; + top:50%; + width:30px; + z-index:2; +} + +.dots { + bottom:30px; + right:80px; + position:absolute; + z-index:2; +} + +.dots .dot { + border-radius: 50%; + background-color: transparent; + box-shadow: inset 0 0 0 2px white; + -webkit-transition: box-shadow 0.3s ease; + transition: box-shadow 0.3s ease; + + cursor:pointer; + display:inline-block; + height:10px; + margin-left:10px; + width:10px; +} + +.dots .dot:hover, +.dots .dot:focus { + box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.6) +} + +.dots .dot.sel { + box-shadow: inset 0 0 0 8px white; +} + +.introWrapper { + border-bottom:1px solid #CCC; + margin-bottom:50px; +} + +table.intro { + background:url(../images/intro-bg.gif) no-repeat center; + table-layout:fixed; + text-align:center; +} + +table.intro td { + background-position:center 25px; + background-repeat:no-repeat; + background-size:25px auto; + padding:65px 0 40px 0; + position:relative; + vertical-align:top; +} + +table.intro td.ag { + background-image:url(../images/agility.png); +} + +table.intro td.fl { + background-image:url(../images/flexibility.png); +} + +table.intro td.fa { + background-image:url(../images/familiarity.png); +} + +table.intro h1 { + font-size:36px; + font-weight:normal; + margin:0; + padding:0; +} + +table.intro p { + font-size:16px; + font-weight:lighter; + line-height:22px; + margin:0; + padding:2px 35px 30px 35px; +} + +table.intro span { + bottom:30px; + display:block; + position:absolute; + width:100%; +} + +table.intro a { + color:#1a6bc7; + font-size:12px; + font-weight: bold; +} + +.home_txt { + text-align:center; + padding-bottom:25px; +} + +.home_txt h1 { + font-size:36px; + font-weight:normal; + line-height:44px; + margin:0; +} + +.home_txt h2 { + font-size:16px; + font-weight:normal; + line-height:24px; +} + +.home_txt p { + font-size:16px; + font-weight:lighter; + line-height:24px; + margin:40px auto; + width:770px; +} + +.getInvolved { + background:#f6f5f7; + font-size:14px; + font-weight:lighter; + line-height:26px; + padding:50px 0; +} + +.getInvolved .wrapper { + margin:auto; + width:780px; +} + +.getInvolved a { + color:#1a6bc7; + text-decoration:none; +} + +.getInvolved table { + font-size:12px; + margin-top:10px; + table-layout:fixed; + width:100%; +} +.getInvolved table td, .getInvolved table th { + text-align:left; +} + +.getInvolved table th { + border-bottom:1px solid #e9e9e9; +} + +.getInvolved table td { + border-top:1px solid #f0f0f0; +} + +#blu { + display:table; + font-size:12px; + font-weight:lighter; + line-height:28px; + table-layout:fixed; +} + +#blu a { + color:#FFF; + text-decoration:none; +} + +#blu .cell { + color:#FFF; + display:table-cell; + padding:40px 0; + overflow:hidden; + vertical-align:middle; +} + +#blu .cell.left { + background:#1b2b3e; + padding-right:54px; +} + +#blu .cell.left .wrapper { + float:right; +} + +#blu .cell.right { + background:#184f8d; + padding-left:54px; +} + +#blu .cell.right .wrapper { + float:left; +} + +#blu .cell .wrapper { + width:425px; +} + +#blu h2 { + font-size:24px; + font-weight:lighter; + margin:0 0 10px 0; + padding:0; +} + +#footer { + background:#232323; + color:#FFF; + font-size:10px; + font-weight:lighter; + line-height:20px; + padding:30px 0; + text-align:center; +} + +#footer .wrapper { + padding:0 80px; +} + +.bui { + display:none; + position:fixed; + top:0; + left:0; + right:0; + bottom:0; + background:rgba(0,0,0,0.8); + z-index:4; +} + +.disclaimer { + background:#f6f5f5; + font-size:12px; + font-weight:lighter; + line-height:24px; + text-align:center; +} + +.disclaimer .wrapper { + margin:auto; + padding:50px 0 50px 0; + width:780px; +} + +.disclaimer h2 { + font-size:24px; + font-weight:lighter; + margin:0 0 10px 0; + padding:0; +} + +.int_text { + margin:60px auto 100px auto; + width:780px; +} + +.int_text a, .int_title a { + color:#1a6bc7; + font-weight:normal; +} + +.int_text p, .int_text ul { + font-size:16px; + font-weight:lighter; + line-height:30px; + +} + +.int_text p.l1 { + padding-left:30px; +} + +.int_text h2 { + font-size:24px; + font-weight:normal; + margin:30px 0 0 0; +} + +.int_text img { + display:block; + margin:30px auto; +} + +.int_text table { + font-size:14px; + margin-bottom:50px; + width:100%; +} +.int_text table td, .int_text table th { + padding:7px; + text-align:left; +} + +.int_text table tr td:first-child, .int_text table tr th:first-child { + padding-left:0px; +} + +.int_text table.ul td { + border-top:1px solid #e9e9e9; +} + +ul.num { + list-style:decimal; +} + +.int_title { + font-size:16px; + font-weight:lighter; + margin:auto; + margin-top:110px; + padding:0 0 15px 0; + position:relative; + text-align:center; + width:600px; +} + +.int_title.int_title_img { + background-position:center top; + background-repeat:no-repeat; + background-size:25px auto; + padding-top:40px; +} + +.int_title.int_title_img.architecture { + background-image:url(../images/architecture.png); +} + +.int_title.int_title_img.community { + background-image:url(../images/community.png); +} + +.int_title.int_title_img.download { + background-image:url(../images/download.png); +} + +.int_title p { + line-height:30px; + margin:10px 0 25px 0; +} + +.int_title h1 { + font-size:36px; + margin:0; +} + +.int_title:after { + background:#1a6bc7; + bottom:0px; + content:" "; + height:5px; + left:275px; + position:absolute; + width:50px; +} + +table.intro a:before, table.intro a:after { + backface-visibility: hidden; + pointer-events: none; +} + +table.intro a, .int_text a, .int_title a { + display:inline-block; + overflow: hidden; + outline: medium none; + position: relative; + text-decoration: none; + vertical-align: bottom; + white-space: nowrap; +} +table.intro a:before, .int_text a:before, .int_title a:before { + background: none repeat scroll 0 0 rgba(149, 165, 166, 0.4); + content: ""; + height: 100%; + left: 0; + position: absolute; + top: 0; + transform: scaleY(0.8) translateX(-100%); + transition: transform 0.3s ease 0s; + width: 100%; + z-index: -1; +} +table.intro a:hover:before, +table.intro a:focus:before, +.int_text a:focus:before, +.int_text a:hover:before, +.int_title a:focus:before, +.int_title a:hover:before + { + transform: scaleY(0.8) translateX(0px); +} + +#header .dots, .aLeft, .aRight { display:none; } + +.int_text.download { text-align:center; } + +.int_text.download table { table-layout:fixed; } + +.int_text.download table a { + background-size:16px auto; + background-position:17px center; + background-repeat:no-repeat; + padding:0 35px 0 45px; + line-height:40px; + font-size:12px; + font-weight:normal; + color:#FFF; +} + +.int_text.download table a.dl { + background-color:#4aaf4c; + background-size:13px auto; + background-image:url(../images/download-ico.png); +} +.int_text.download table a.dl:hover { + background-color:#348436; +} + +.int_text.download table a.find { + background-color:#1a6bc7; + background-image:url(../images/btn-lens.png); +} + +.int_text.download table a.find:hover { + background-color:#145aa8; +} \ No newline at end of file Propchange: websites/staging/drill/trunk/content/drill/css/style.css ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/download.html ============================================================================== --- websites/staging/drill/trunk/content/drill/download.html (added) +++ websites/staging/drill/trunk/content/drill/download.html Sat Aug 9 07:33:27 2014 @@ -0,0 +1,157 @@ +<!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Apache Drill - Download Apache Drill</title> + + <link href="css/style.css" rel="stylesheet" type="text/css"> + <link href="css/arrows.css" rel="stylesheet" type="text/css"> + <link href="css/button.css" rel="stylesheet" type="text/css"> + + <script language="javascript" type="text/javascript" src="js/lib/jquery-1.11.1.min.js"></script> + <script language="javascript" type="text/javascript" src="js/lib/jquery.easing.1.3.js"></script> + <script language="javascript" type="text/javascript" src="js/modernizr.custom.js"></script> + <script language="javascript" type="text/javascript" src="js/script.js"></script> + + </head> + + <body onResize="resized();"> + + <div class="bui"></div> + + <div id="search"> + <input type="text" placeholder="Enter search term here"> + </div> + + <div id="menu" class="mw"> + + <ul> + <li class="logo"><a href="/index.html"></a></li> + + <li> + <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_blank">Documentation</a> + <ul> + <li><a href="overview.html">Overview</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes" target="_blank">Drill in 10 minutes</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingaFileSystem" target="_blank">Query Files</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHBaseTables" target="_blank">Query HBase</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHiveTables" target="_blank">Query Hive</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/SQL+Overview" target="_blank">SQL Support</a></li> <li><a href="architecture.html">Architecture</a></li> + </ul> + </li> + <li> + <a href="community.html">Community</a> + <ul> + <li><a href="community.html#events">Events and Meetups</a></li> + <li><a href="community.html#mailinglists">Mailing Lists</a></li> + <li><a href="community.html#getinvolved">Get Involved</a></li> + <li><a href="https://issues.apache.org/jira/browse/DRILL/" target="_blank">Issue Tracker</a></li> + <li><a href="https://github.com/apache/incubator-drill" target="_blank">Github</a></li> + </ul> + </li> + <li><a href="faq.html">FAQ</a></li> + + <li class="l"><span> </span></li> + <li class="d"><a href="download.html">Download</a></li> + </ul> + + </div> + + <div class="int_title int_title_img download"> + <h1>Download Apache Drill</h1> + </div> + + <div class="int_text download"> + + <h2>The latest release is Drill 0.4, released August 8, 2014</h2> + <br> + + <table> + <tr> + <td><a href="http://www.apache.org/dyn/closer.cgi/incubator/drill/drill-0.4.0-incubating/apache-drill-0.4.0-incubating.tar.gz" class="find" id="apachemirror">FIND AN APACHE MIRROR</a></td> + <td><a href="http://getdrill.org/drill/download/apache-drill-0.4.0-incubating.tar.gz" class="dl" id="directdownload">DIRECT FILE DOWNLOAD</a></td> + <td><a href="http://package.mapr.com/labs/drill/tools/" class="dl">ODBC DRIVERS FOR DRILL</a></td> + </tr> + </table> + + <h2>Release Notes</h2> + <p><a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+0.4.0+Release+Notes" target="_new">Click here</a></p> + + <h2>Github Tag</h2> + <p><a href="https://github.com/apache/incubator-drill/tree/0.4.0-incubating" target="_new">Click here</a></p> + + </div> + + <div id="footer" class="mw"> + <div class="wrapper"> + Copyright © 2012 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br> +Apache Incubator, Apache, and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br> + <br> + <strong>DISCLAIMER</strong><br> +Apache Drill is an effort undergoing incubation at The Apache Software Foundation sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further<br> +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<br>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> + </div> + + <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'); + + ga('create', 'UA-53379651-1', 'auto'); + ga('send', 'pageview'); + + </script> + + <script type="text/javascript"> + + var downloadLink = document.getElementById('apachemirror'); + addListener(downloadLink, 'click', function() { + ga('send', 'event', 'button', 'click', 'download'); + }); + + + /** + * Utility to wrap the different behaviors between W3C-compliant browsers + * and IE when adding event handlers. + * + * @param {Object} element Object on which to attach the event listener. + * @param {string} type A string representing the event type to listen for + * (e.g. load, click, etc.). + * @param {function()} callback The function that receives the notification. + */ + function addListener(element, type, callback) { + if (element.addEventListener) element.addEventListener(type, callback); + else if (element.attachEvent) element.attachEvent('on' + type, callback); + } + + </script> + + + <script type="text/javascript"> + + var downloadLinkdirect = document.getElementById('directdownload'); + addListener(downloadLinkdirect, 'click', function() { + ga('send', 'event', 'buttondirect', 'clickdirect', 'downloaddirect'); + }); + + + /** + * Utility to wrap the different behaviors between W3C-compliant browsers + * and IE when adding event handlers. + * + * @param {Object} element Object on which to attach the event listener. + * @param {string} type A string representing the event type to listen for + * (e.g. load, click, etc.). + * @param {function()} callback The function that receives the notification. + */ + function addListener(element, type, callback) { + if (element.addEventListener) element.addEventListener(type, callback); + else if (element.attachEvent) element.attachEvent('on' + type, callback); + } + + </script> + + </body> +</html> Propchange: websites/staging/drill/trunk/content/drill/download.html ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/faq.html ============================================================================== --- websites/staging/drill/trunk/content/drill/faq.html (added) +++ websites/staging/drill/trunk/content/drill/faq.html Sat Aug 9 07:33:27 2014 @@ -0,0 +1,187 @@ +<!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Apache Drill - FAQ</title> + + <link href="css/style.css" rel="stylesheet" type="text/css"> + <link href="css/arrows.css" rel="stylesheet" type="text/css"> + <link href="css/button.css" rel="stylesheet" type="text/css"> + + <script language="javascript" type="text/javascript" src="js/lib/jquery-1.11.1.min.js"></script> + <script language="javascript" type="text/javascript" src="js/lib/jquery.easing.1.3.js"></script> + <script language="javascript" type="text/javascript" src="js/modernizr.custom.js"></script> + <script language="javascript" type="text/javascript" src="js/script.js"></script> + + </head> + + <body onResize="resized();"> + + <div class="bui"></div> + + <div id="search"> + <input type="text" placeholder="Enter search term here"> + </div> + + <div id="menu" class="mw"> + + <ul> + <li class="logo"><a href="/index.html"></a></li> + + <li> + <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_blank">Documentation</a> + <ul> + <li><a href="overview.html">Overview</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes" target="_blank">Drill in 10 minutes</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingaFileSystem" target="_blank">Query Files</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHBaseTables" target="_blank">Query HBase</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/Connecting+to+Data+Sources#ConnectingtoDataSources-QueryingHiveTables" target="_blank">Query Hive</a></li> + <li><a href="https://cwiki.apache.org/confluence/display/DRILL/SQL+Overview" target="_blank">SQL Support</a></li> <li><a href="architecture.html">Architecture</a></li> + </ul> + </li> + <li> + <a href="community.html">Community</a> + <ul> + <li><a href="community.html#events">Events and Meetups</a></li> + <li><a href="community.html#mailinglists">Mailing Lists</a></li> + <li><a href="community.html#getinvolved">Get Involved</a></li> + <li><a href="https://issues.apache.org/jira/browse/DRILL/" target="_blank">Issue Tracker</a></li> + <li><a href="https://github.com/apache/incubator-drill" target="_blank">Github</a></li> + </ul> + </li> + <li><a href="faq.html">FAQ</a></li> + + <li class="l"><span> </span></li> + <li class="d"><a href="download.html">Download</a></li> + </ul> + + </div> + + <div class="int_title"> + <h1>FAQ</h1> + <p>This document addresses common questions about Apache Drill and its use.</p> + <p>If you don't find the answer you're looking for, please refer to the <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki" target="_new">Apache Drill documentation</a> or send your question to <span class='nw'><a href="mailto:drill-u...@incubator.apache.org">drill-u...@incubator.apache.org</a>.</span></p> + </div> + + <div class="int_text" align="left"> + + <h3>What use cases should I consider using Drill for?</h3> + <p> + Drill provides low latency SQL queries on large-scale datasets. Example use cases for Drill include + <ul> + <li>Interactive data exploration/data discovery</li> + <li>Adhoc BI/reporting queries</li> + <li>Analytics on NoSQL data</li> + <li>Real time or Day zero analytics (i.e analyze data as it comes with no preparation/ETL)</li> + </ul> + </p> + <p>We expect Drill to be used in lot more use cases where low latency is required.</p> + + <h3>Does Drill replace Hive for batch processing? What about my OLTP applications?</h3> + <p>Drill complements batch-processing frameworks such as Hive, Pig, MapReduce to support low latency queries. Drill at this point doesn't make an optimal choice for OLTP/operational applications that require sub-second response times. </p> + + <h3>There are lots of SQL on Hadoop technologies out there. How is Drill different?</h3> + <p> + Drill takes a different approach to SQL-on-Hadoop than Hive and other related technologies. The goal for Drill is to bring the SQL ecosystem and performance of the relational systems to Hadoop-scale data without compromising on the flexibility of Hadoop/NoSQL systems. Drill provides a flexible query environment for users with the key capabilities as below. + <ul> + <li>Self-describing data support without centralized schema definitions/management</li> + <li>Support for complex/multi-structured data types</li> + <li>ANSI SQL support (not SQL "Like") & BI tool integration</li> + <li>Extensibility to go beyond Hadoop environments</li> + </ul> + </p> + + <h3>What is self-describing data?</h3> + <p>Self-describing data is where schema is specified as part of the data itself. File formats such as Parquet, JSON, ProtoBuf, XML, AVRO and NoSQL databases are all examples of self-describing data. Some of these data formats also dynamic and complex in that every record in the data can have its own set of columns/attributes and each column can be semi-structured/nested.</p> + + <h3>How does Drill support queries on self-describing data?</h3> + <p> + Drill enables queries on self-describing data using the fundamental architectural foundations as below.<br> + <ul> + <li>Dynamic schema discovery or late binding: Drill allows performing queries directly on self-describing data such as Files, HBase without defining overlay schema definitions in Hive metastore. The schema is discovered on the fly at the query time. With the dynamic schema discovery, Drill makes it easy to support dynamic and rapidly evolving data models.</li> + <li>Flexible data model: Drill is built from the ground up for complex/semi-structured data commonly seen in Hadoop/NoSQL systems. Drill provides intuitive extensions to SQL to represent and operate on complex data. The internal data model of Drill is hierarchical and columnar with which it can represent and perform efficient SQL processing on complex data natively without flattening into rows either at the design time or runtime.</li> + </ul> + </p> + + <p>Together with the dynamic data discovery and a flexible data model that can handle complex data types, Drill allows users to get fast and complete value from all their data.</p> + + <h3>But I already have schemas defined in Hive metastore? Can I use that with Drill?</h3> + <p>Yes, Hive also serves as data source for Drill. So you can simply point to the Hive metastore from Drill and start performing low latency queries on Hive tables with no modifications. </p> + + <h3>Is Drill trying to be "anti-schema" or "anti-dba"?</h3> + <p> + Of course not! Central EDW schemas work great if data models are not changing often, value of data is well understood and is ready to be operationalized for regular reporting purposes. However, during data exploration and discovery phase, rigid modeling requirement poses challenges and delays value from data, especially in the Hadoop/NoSQL environments where the data is highly complex, dynamic and evolving fast. Few challenges include + <ul> + <li>Complex data models (eg: JSON) are hard to map to relational paradigms</li> + <li>Centralized schemas are hard to keep up with when data models evolve fast</li> + <li>Static models defined for known questions are not enough for the diversity and volumes of big data</li> + <li>Non-repetitive/ad hoc queries and short-term data exploration needs may not justify modeling costs</li> + </ul> + </p> + + <p>Drill is all about flexibility. The flexible schema management capabilities in Drill lets users explore the data in its native format as it comes in directly and create models/structure if needed in Hive metastore or using the CREATE TABLE/CREATE VIEW syntax within Drill.</p> + + <h3>What does a Drill query look like?</h3> + <p>Drill uses a de-centralized metadata model and relies on its storage plugins to provide with the metadata. Drill supports queries on file system (distributed and local), HBase and Hive tables. There is a storage plugin associated with each data source that is supported by Drill.<br><br> + Here is the anatomy of a Drill query. </p> + <img src="images/overview-img1.png" width="550" alt=""> + + <h3>Can I connect to Drill from my BI tools (such as Tableau, Microstrategy, etc.)?</h3> + <p>Yes, Drill provides JDBC/ODBC drivers for integrating with BI/SQL based tools. </p> + + <h3>What SQL functionality can Drill support?</h3> + <p> + Drill provides ANSI standard SQL (not SQL "Like" or Hive QL) with support for all key analytics functionality such as SQL data types, joins, aggregations, filters, sort, sub-queries (including correlated), joins in where clause etc. <a href="https://cwiki.apache.org/confluence/display/DRILL/SQL+Overview" target="new">Click here</a> for reference on SQL functionality in Drill. + </p> + + <h3>What Hadoop distributions does Drill work with?</h3> + <p>Drill is not designed with a particular Hadoop distribution in mind and we expect it to work with all Hadoop distributions that support Hadoop 2.3.x file client API. We have validated it so far with Apache Hadoop/MapR/CDH and Amazon EMR* distributions.</p> + <p><em style="font-size:14px">* Custom configuration required. Please contact <a href="drill-u...@incubator.apache.org">drill-u...@incubator.apache.org</a> for questions</em></p> + + <h3>How does Drill achieve performance?</h3> + <p> + Drill is built from the ground up for performance on large-scale datasets. The key architectural components that help in achieving performance include. + <ul> + <li>Distributed query optimization & execution</li> + <li>Columnar execution</li> + <li>Vectorization</li> + <li>Runtime compilation & code generation</li> + <li>Optimistic/pipelined execution</li> + </ul> + </p> + + <h3>Does Drill support multi-tenant/high concurrency environments?</h3> + <p>Drill is built to support several 100s of queries at any given point. Clients can submit requests to any node running Drillbit service in the cluster (no master-slave concept). To support more users, you simply have to add more nodes to the cluster.</p> + + <h3>Do I need to load data into Drill to start querying it?</h3> + <p>No. Drill can query data "in situ".</p> + + <h3>What is the best way to get started with Drill?</h3> + <p>The best way to get started is to just try it out. It just takes a few minutes even if you do not have a cluster. Here is a good place to start - <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes" target="_new">Apache Drill in 10 minutes.</a></p> + + + <h3>How can I ask questions and provide feedback?</h3> + <p>Please post your questions and feedback on <a href="mailto:drill-u...@incubator.apache.org">drill-u...@incubator.apache.org</a>. We are happy to have you try out Drill and help with any questions!</p> + + <h3>How can I contribute to Drill?</h3> + <p> + Please refer to the <a href="community.html#getinvolved">Get Involved</a> page on how to get involved with Drill.<br> + <a href="https://cwiki.apache.org/confluence/display/DRILL/Contributing" target="_new">Here is how you can contribute.</a><br> + Please contact <a href="mailto:drill-...@incubator.apache.org">drill-...@incubator.apache.org</a> for any questions. + </p> + + </div> + + <div id="footer" class="mw"> + <div class="wrapper"> + Copyright © 2012 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br> + Apache Incubator, Apache, and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br> + <br> + <strong>DISCLAIMER</strong><br> + Apache Drill is an effort undergoing incubation at The Apache Software Foundation sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further<br> + 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<br>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> + </div> + + </body> +</html> Propchange: websites/staging/drill/trunk/content/drill/faq.html ------------------------------------------------------------------------------ svn:executable = * Added: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.eot ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.eot ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.eot ------------------------------------------------------------------------------ svn:mime-type = application/vnd.ms-fontobject Added: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.svg ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.svg ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.svg ------------------------------------------------------------------------------ svn:mime-type = image/svg+xml Added: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.ttf ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.ttf ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.ttf ------------------------------------------------------------------------------ svn:mime-type = application/x-font-ttf Added: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.woff ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.woff ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/fonts/icomoon/icomoon.woff ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: websites/staging/drill/trunk/content/drill/images/apachedrill.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/images/apachedrill.png ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/images/apachedrill.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/drill/trunk/content/drill/images/download.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/images/download.png ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/images/download.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: websites/staging/drill/trunk/content/drill/images/familiarity.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/drill/trunk/content/drill/images/familiarity.png ------------------------------------------------------------------------------ svn:executable = * Propchange: websites/staging/drill/trunk/content/drill/images/familiarity.png ------------------------------------------------------------------------------ svn:mime-type = image/png