| <!DOCTYPE html> |
| <!-- |
| | Generated by Apache Maven Doxia at 2015-07-09 |
| | Rendered using Apache Maven Fluido Skin 1.3.0 |
| --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta name="Date-Revision-yyyymmdd" content="20150709" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| <title>Metadata and Governance - Search</title> |
| <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" /> |
| <link rel="stylesheet" href="./css/site.css" /> |
| <link rel="stylesheet" href="./css/print.css" media="print" /> |
| |
| |
| <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script> |
| |
| |
| |
| <script type="text/javascript">$( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );</script> |
| |
| </head> |
| <body class="topBarEnabled"> |
| |
| |
| |
| |
| |
| <div id="topbar" class="navbar navbar-fixed-top "> |
| <div class="navbar-inner"> |
| <div class="container" style="width: 68%;"><div class="nav-collapse"> |
| |
| |
| <ul class="nav"> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Atlas <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| |
| <li> <a href="index.html" title="About">About</a> |
| </li> |
| |
| <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS" title="Wiki">Wiki</a> |
| </li> |
| |
| <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS" title="News">News</a> |
| </li> |
| |
| <li> <a href="https://git-wip-us.apache.org/repos/asf/incubator-atlas.git" title="Git">Git</a> |
| </li> |
| |
| <li> <a href="https://svn.apache.org/repos/asf/incubator/atlas" title="Svn">Svn</a> |
| </li> |
| |
| <li> <a href="https://issues.apache.org/jira/browse/ATLAS" title="Jira">Jira</a> |
| </li> |
| |
| <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS/PoweredBy" title="Powered by">Powered by</a> |
| </li> |
| |
| <li> <a href="http://blogs.apache.org/atlas/" title="Blog">Blog</a> |
| </li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| |
| <li> <a href="project-info.html" title="Summary">Summary</a> |
| </li> |
| |
| <li> <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a> |
| </li> |
| |
| <li> <a href="http://webchat.freenode.net?channels=apacheatlas&uio=d4" title="IRC">IRC</a> |
| </li> |
| |
| <li> <a href="team-list.html" title="Team">Team</a> |
| </li> |
| |
| <li> <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a> |
| </li> |
| |
| <li> <a href="source-repository.html" title="Source Repository">Source Repository</a> |
| </li> |
| |
| <li> <a href="license.html" title="License">License</a> |
| </li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| |
| <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS" title="Coming soon">Coming soon</a> |
| </li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| |
| <li> <a href="index.html" title="current">current</a> |
| </li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Resources <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| |
| <li> <a href="index.html" title="Overview">Overview</a> |
| </li> |
| |
| <li> <a href="QuickStart.html" title="Getting Started">Getting Started</a> |
| </li> |
| |
| <li> <a href="Architecture.html" title="Architecture">Architecture</a> |
| </li> |
| |
| <li> <a href="InstallationSteps.html" title="Installation">Installation</a> |
| </li> |
| |
| <li> <a href="TypeSystem.html" title="Type System">Type System</a> |
| </li> |
| |
| <li> <a href="Configuration.html" title="Configuration">Configuration</a> |
| </li> |
| |
| <li> <a href="Security.html" title="Security">Security</a> |
| </li> |
| |
| <li> <a href="api/rest.html" title="Rest API">Rest API</a> |
| </li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a> |
| <ul class="dropdown-menu"> |
| |
| <li> <a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a> |
| </li> |
| |
| <li> <a href="http://www.apache.org/foundation/" title="Foundation">Foundation</a> |
| </li> |
| |
| <li> <a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a> |
| </li> |
| |
| <li> <a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| |
| <form id="search-form" action="http://www.google.com/search" method="get" class="navbar-search pull-right" > |
| |
| <input value="http://atlas.incubator.apache.org" name="sitesearch" type="hidden"/> |
| <input class="search-query" name="q" id="query" type="text" /> |
| </form> |
| <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script> |
| |
| |
| |
| |
| |
| <iframe src="http://www.facebook.com/plugins/like.php?href=http://atlas.incubator.apache.org/atlas-docs&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark" |
| scrolling="no" frameborder="0" |
| style="border:none; width:80px; height:20px; margin-top: 10px;" class="pull-right" ></iframe> |
| |
| <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> |
| |
| <ul class="nav pull-right"><li style="margin-top: 10px;"> |
| |
| <div class="g-plusone" data-href="http://atlas.incubator.apache.org/atlas-docs" data-size="medium" width="60px" align="right" ></div> |
| |
| </li></ul> |
| |
| |
| </div> |
| |
| </div> |
| </div> |
| </div> |
| |
| <div class="container"> |
| <div id="banner"> |
| <div class="pull-left"> |
| <a href=".." id="bannerLeft"> |
| <img src="images/atlas-logo.png" alt="Apache Atlas" width="200px" height="45px"/> |
| </a> |
| </div> |
| <div class="pull-right"> <a href="http://incubator.apache.org" id="bannerRight"> |
| <img src="images/apache-incubator-logo.png" alt="Apache Incubator"/> |
| </a> |
| </div> |
| <div class="clear"><hr/></div> |
| </div> |
| |
| <div id="breadcrumbs"> |
| <ul class="breadcrumb"> |
| |
| |
| <li class=""> |
| <a href="http://www.apache.org" class="externalLink" title="Apache"> |
| Apache</a> |
| </li> |
| <li class="divider ">/</li> |
| <li class=""> |
| <a href="index.html" title="Atlas"> |
| Atlas</a> |
| </li> |
| <li class="divider ">/</li> |
| <li class="">Search</li> |
| |
| |
| |
| <li id="publishDate" class="pull-right">Last Published: 2015-07-09</li> <li class="divider pull-right">|</li> |
| <li id="projectVersion" class="pull-right">Version: 0.5-incubating</li> |
| |
| </ul> |
| </div> |
| |
| |
| |
| <div id="bodyColumn" > |
| |
| <div class="section"> |
| <h2>Search<a name="Search"></a></h2> |
| <p>Atlas exposes search over the metadata in two ways:</p> |
| <ul> |
| <li>Search using DSL</li> |
| <li>Full-text search</li></ul></div> |
| <div class="section"> |
| <h3>Search DSL Grammar<a name="Search_DSL_Grammar"></a></h3> |
| <p>The DSL exposes an SQL like query language for searching the metadata based on the type system. The grammar for the DSL is below.</p> |
| <div class="source"> |
| <pre> |
| queryWithPath: query ~ opt(WITHPATH) |
| |
| query: rep1sep(singleQuery, opt(COMMA)) |
| |
| singleQuery: singleQrySrc ~ opt(loopExpression) ~ opt(selectClause) |
| |
| singleQrySrc = FROM ~ fromSrc ~ opt(WHERE) ~ opt(expr ^? notIdExpression) | |
| WHERE ~ (expr ^? notIdExpression) | |
| expr ^? notIdExpression | |
| fromSrc ~ opt(WHERE) ~ opt(expr ^? notIdExpression) |
| |
| fromSrc: identifier ~ AS ~ alias | identifier |
| |
| loopExpression: LOOP ~ (LPAREN ~> query <~ RPAREN) ~ opt(intConstant <~ TIMES) ~ opt(AS ~> alias) |
| |
| selectClause: SELECT ~ rep1sep(selectExpression, COMMA) |
| |
| selectExpression: expr ~ opt(AS ~> alias) |
| |
| expr: compE ~ opt(rep(exprRight)) |
| |
| exprRight: (AND | OR) ~ compE |
| |
| compE: |
| arithE ~ (LT | LTE | EQ | NEQ | GT | GTE) ~ arithE | |
| arithE ~ (ISA | IS) ~ ident | |
| arithE ~ HAS ~ ident | |
| arithE |
| |
| arithE: multiE ~ opt(rep(arithERight)) |
| |
| arithERight: (PLUS | MINUS) ~ multiE |
| |
| multiE: atomE ~ opt(rep(multiERight)) |
| |
| multiERight: (STAR | DIV) ~ atomE |
| |
| atomE: literal | identifier | LPAREN ~> expr <~ RPAREN |
| |
| identifier: rep1sep(ident, DOT) |
| |
| alias: ident | stringLit |
| |
| literal: booleanConstant | |
| intConstant | |
| longConstant | |
| floatConstant | |
| doubleConstant | |
| stringLit |
| |
| </pre></div> |
| <p>Grammar language: {noformat} opt(a) => a is optional ~ => a combinator. 'a ~ b' means a followed by b rep => zero or more rep1sep => one or more, separated by second arg. {noformat}</p> |
| <p>Language Notes:</p> |
| <ul> |
| <li>A <b><a href="./SingleQuery.html">SingleQuery</a></b> expression can be used to search for entities of a <i>Trait</i> or <i>Class</i>.</li></ul>Entities can be filtered based on a 'Where Clause' and Entity Attributes can be retrieved based on a 'Select Clause'. |
| <ul> |
| <li>An Entity Graph can be traversed/joined by combining one or more <a href="./SingleQueries.html">SingleQueries</a>.</li> |
| <li>An attempt is made to make the expressions look SQL like by accepting keywords "SELECT",</li></ul>"FROM", and "WHERE"; but these are optional and users can simply think in terms of Entity Graph Traversals. |
| <ul> |
| <li>The transitive closure of an Entity relationship can be expressed via the <i>Loop</i> expression. A</li></ul><i>Loop</i> expression can be any traversal (recursively a query) that represents a <i>Path</i> that ends in an Entity of the same <i>Type</i> as the starting Entity. |
| <ul> |
| <li>The <i><a href="./WithPath.html">WithPath</a></i> clause can be used with transitive closure queries to retrieve the Path that</li></ul>connects the two related Entities. (We also provide a higher level interface for Closure Queries see scaladoc for 'org.apache.metadata.query.ClosureQuery') |
| <ul> |
| <li>There are couple of Predicate functions different from SQL: |
| <ul> |
| <li><i>is</i> or <i>isa</i>can be used to filter Entities that have a particular Trait.</li> |
| <li><i>has</i> can be used to filter Entities that have a value for a particular Attribute.</li></ul></li></ul></div> |
| <div class="section"> |
| <h4>DSL Examples<a name="DSL_Examples"></a></h4> |
| <p></p> |
| <ul> |
| <li>from DB</li> |
| <li>DB where name="Reporting" select name, owner</li> |
| <li>DB has name</li> |
| <li>DB is <a href="./JdbcAccess.html">JdbcAccess</a></li> |
| <li>Column where Column isa PII</li> |
| <li>Table where name="sales_fact", columns</li> |
| <li>Table where name="sales_fact", columns as column select column.name, column.dataType, column.comment</li></ul></div> |
| <div class="section"> |
| <h3>Full-text Search<a name="Full-text_Search"></a></h3> |
| <p>Atlas also exposes a lucene style full-text search capability.</p></div> |
| </div> |
| </div> |
| |
| <hr/> |
| |
| <footer> |
| <div class="container"> |
| <div class="row span12">Copyright © 2015 |
| <a href="http://www.apache.org">Apache Software Foundation</a>. |
| All Rights Reserved. |
| |
| </div> |
| |
| |
| <p id="poweredBy" class="pull-right"> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> |
| <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /> |
| </a> |
| </p> |
| |
| </div> |
| </footer> |
| </body> |
| </html> |