5 Things Software Developers Love about Aster

Learn Data Science
Teradata Employee

I have been programming computers since I was 12 years old.  I always loved the ability to build something and watch it work almost immediately.  I first started off with an Apple IIc computer writing pascal, basic, and C programs.  I loved it so much that I wanted to build a career out of it and 35 years later here I am, still writing code today.  Much of my professional programming experience has included embedding ANSI SQL into my efforts.  If you are building an OLTP transaction system or a Business Intelligence application you are more than likely using ANSI SQL.  Then I stumbled upon Aster and found that the game changed.  These are the 5 big reasons why software developers love Aster:  ASTER-SQL, DATA, PIVOT, DELIVERY, and DIY (Do it yourself).

The 5 Reasons Why Software Developers Love Aster:

1.   ASTER SQL:  Love ANSI SQL, then you will love ASTER SQL!

ANSI SQL is one of the most powerful languages in computing.  It is great for ACID transactions, performing analysis, securing data, and building objects.  Most transaction system utilize ANSI SQL to perform updates, deletes, and inserts of data into relational systems.  Aster allows you to use and leverage ANSI SQL just like any relational database does.  Aster also comes with its own SQL based functions:  SQL-MR and SQL-GR.  For the purposes of this document we will just call it ASTER SQL.  There are 100+ Aster SQL functions built into Aster.  The syntax for these functions is fairly simple to learn.  An example:

SELECT * FROM nPATH....  where nPATH is the name of the ASTER SQL function instead of the name of a table, view, or another SQL query; like ANSI SQL works.  We will get into what these functions are in reason 3: PIVOT: Multi-Genre Analytics below.  Once I have learned to use this syntax I have basically learned how to use all of the functions.  It is also very easy to embed these solutions into a client based tool using the Aster ODBC and JDBC drivers.

There are types of jobs that I cannot simply do in ANSI SQL especially with data at scale.  Cartesian type of joins are very difficult to manage in ANSI SQL.  What Aster has is a Map Reduce and Graph processing engine built into the database.  This is the foundation for Aster SQL and it enables you to do much more than just SQL.  I like to think of it as SQL++!


Aster scales to petabytes in size if you need it too.  I also have different ASTER SQL operators to help parse and manipulate data.  With Aster I can ingest PDF, Word, Excel, and binary formats.  I also can ingest XML, JSON, and highly customized data formats such as HL7.  It is also very simple to ingest highly structured data rapidly.  In the past 3 years I have probably ingested or manipulated over a trillion different data objects.  Aster makes BIG DATA small and easy to use.  I don't have to subset or sample data which could skew results.  I also have a number of data wrangling capabilities in Aster.  Don't forget that you also have the full power of ANSI SQL at your disposal on a massively parallel environment.  Don't forget about RAW speed and horsepower.  I have tokenized 20 million call center records in seconds.  I can also run a TFIDF against those records in seconds!  Even build my own ontology and run a sentiment analysis or named entity finder in seconds.

3.  PIVOT:  Multi-Genre Analytics:

Multi-Genre Analytics is a trademark of Teradata.  What it means is that I can leverage many different kinds of analytics from within the Aster environment.  What are these types of analytics?  Inside of Aster comes a set of pre-built functions:  data preparation, text analysis, graph, machine learning, statistical, path and pattern, and visualization.  Each one of these types works basically the same.  See  REASON 1 above for more details.  Why is this important?  I don't have to move my data to another platform to perform a different type of analytic or solve a data problem.  So if I want to do graph today I may consider NEO4J.  But what if I want to do more than just graph?  What if I want to perform another analytic on that data?  If that analytic type is not contained with NEO4J I am going to have to move that data to another platform. 

The Aster SQL functions are built to PIVOT to other data sources.  Meaning that if I want to Sessionize my data I don't have to really modify my data to work with that function.  I simply PIVOT my Aster SQL function to that data.  For example:  lets say I wanted to create a unique ID using Sessionize with two data sets:  clickstream(TABLE:  t_webdata) and automotive telematics data (TABLE: t_autodata)?  My code for both functions would be almost the same:



I simply PIVOT my Aster SQL function call to my data.

4.  DELIVERY:  Aster AppCenter allows you to build apps for anyone.

AppCenter is a platform that enables developers to build, execute, and share Big-Data apps.  It enables non-technical people to run the apps, visually study the data, and share their insights with others.   An app is a composition of logic (SQL/SQL-MR/Java) and, optionally, a user interface and

data visualizations that are composed to address a specific need or use case.  Using the built-in AppBuilder wizard, developers can quickly define the App Name, Icon, User Interface, and other attributes; then, they can define the logic of the app.  As a rule of thumb, apps leverage "in-database" functions. The app logic performs only remote calls that perform operations on a remote database (e.g., calling SQL-Map_reduce functions or other SQL statements). Apps are not expected to process data in the app logic itself. In the end, the app logic can generate a visualization of the data.

Aster also enables you to build your own custom interfaces using the Aster JDBC and ODBC drivers.  With this you can build a web, thick, or service based client tool to develop your own applications.  So if you want to build a JDBC or ODBC connected application using Java or .NET please feel free. 

With the Aster ODBC and JDBC drivers I am able to also connect with Business Intelligence tools like Tableau or Microstrategy.   I can even connect Aster to enterprise scheduling tools and messaging tools.

Future blog posts will focus on AppCenter Web Service REST API.  Which is an HTTP interface for the AppCenter App Platform. 

5.  DIY:  Need an analytic function, build it yourself with the Aster Development Environment.

What if you need a Aster SQL function to do something but it is not contained in the stack?  You can build it yourself with the Aster Development Environment.  Aster Development Environment (ADE) is a development environment that lets you write, test, and deploy your SQL-MapReduce functions on Aster Database. Teradata provides ADE in either of two packages:

     • As a plug-in that you can use with the Eclipse IDE for Java Developers.

     • As a full version of Eclipse with the plug-in included.

Stream API

The Stream API is useful when you have existing scripts you want to run in Aster Database, or if you prefer to write your functions in a language other than those supported in SQL-MapReduce. The Stream API allows you to run scripts and functions written in various languages including Python, Ruby, Perl, and C# (the last is supported using the Mono runtime).

AsterR:  R is designed to operate in a single server (single-threaded) on data that is entirely in the main memory of the system. Hence, R fails when the data becomes too large to fit in memory. This limitation is exacerbated by the call by value semantics of R execution, which leads to many copies of data being created in memory as data flows from one function to another.    The R integration in the Aster Database is aimed at addressing these challenges by enabling the in-database execution of R, both to avoid extraction of data from Aster Database and to scale R to large data sets through parallelized execution, which enables users to run multiple instances of their programs over partitioned data.