Introduction

The Axiom Processing Language (APL) is a query language that is perfect for getting deeper insights from your data. Whether logs, events, analytics, or similar, APL provides the flexibility to filter, manipulate, and summarize your data exactly the way you need it.

Getting Started

Go to the Explore tab and click one of your datasets to get started. The APL editor has full auto-completion so you can poke around or you can get a better understanding of all the features by using the reference menu to the left of this page.

APL Query Structure

At a minimum, a query consists of source data reference (name of a dataset) and zero or more query operators applied in sequence. Individual operators are delimited using the pipe character (|).

APL query has the following structure:

DataSource
| operator ...
| operator ...

Where:

  • DataSource is the name of the dataset you want to query
  • Operator is a function that will be applied to the data

Let’s look at an example query.

['github-issue-comment-event']
| extend bot = actor contains "-bot" or actor contains "[bot]"
| where bot == true
| summarize count() by bin_auto(_time), actor

The query above begins with reference to a dataset called github-issue-comment-event and contains several operators, extend, where, and summarize, each separated by a pipe. The extend operator creates the bot column in the returned result, and sets its values depending on the value of the actor column, the where operator filters out the value of the bot to a branch of rows and then produce a chart from the aggregation using the summarize operator.

The most common kind of query statement is a tabular expression statement. Tabular statements contain operators, each of which starts with a tabular input and returns a tabular output.

Axiom Processing Language supplies a set of system data types that define all the types of data that can be used with Axiom Processing Language.