# Overview

HEAVY.AI is an analytics platform designed to handle very large datasets. It leverages the processing power of GPUs alongside traditional CPUs to achieve very high performance. HEAVY.AI combines an open-source SQL engine ([HeavyDB](#omniscidb)), server-side rendering ([HeavyRender](#rendering)), and web-based data visualization ([Heavy Immerse](#immerse)) to provide a comprehensive platform for data analysis.

<figure><img src="https://content.gitbook.com/content/g53aSk5OlCR6nd0xn4YF/blobs/berQbpd0fhaFX1ra87om/image.png" alt=""><figcaption></figcaption></figure>

## HeavyDB

The foundation of the platform is HeavyDB, an open-source, GPU-accelerated database. HeavyDB harnesses GPU processing power and returns SQL query results in milliseconds, even on tables with billions of rows. HeavyDB delivers high performance with rapid query compilation, query vectorization, and advanced memory management.

### Native SQL

With native [SQL support](../sql/data-manipulation-dml/sql-capabilities), HeavyDB returns query results hundreds of times faster than CPU-only analytical database platforms. Use your existing SQL knowledge to query data. You can use the standalone SQL engine with the command line, or the SQL editor that is part of the [Heavy Immerse](overview) visual analytics interface. Your SQL query results can output to Heavy Immerse or to third-party software such as Birst, Power BI, Qlik, or Tableau.

### Geospatial Data

HeavyDB can store and query data using native Open Geospatial Consortium (OGC) types, including POINT, LINESTRING, POLYGON, and MULTIPOLYGON. With geo type support, you can query geo data at scale using special geospatial functions. Using the power of GPU processing, you can quickly and interactively calculate distances between two points and intersections between objects.

### Open Source

HeavyDB is open source and encourages contribution and innovation from a global community of users. It is [available on Github](https://github.com/omnisci/omniscidb) under the Apache 2.0 license, along with components like a Python interface (heavyai) and JavaScript infrastructure (mapd-connector, mapd-charting), making HEAVY.AI the leader in open-source analytics.

## HeavyRender

HeavyRender works on the server side, using GPU buffer caching, graphics APIs, and a Vega-based interface to generate custom pointmaps, heatmaps, choropleths, scatterplots, and other visualizations. HEAVY.AI enables data exploration by creating and sending lightweight PNG images to the web browser, avoiding high-volume data transfers. Fast SQL queries make metadata in the visualizations appear as if the data exists on the browser side.

Network bandwidth is a bottleneck for complex chart data, so HEAVY.AI uses in-situ rendering of on-GPU query results to accelerate visual rendering. This differentiates HEAVY.AI from systems that execute queries quickly but then transfer the results to the client for rendering, which slows performance.

### Geospatial Analysis

Efficient geospatial analysis requires fast data-rendering of complex shapes on a map. HEAVY.AI can import and display millions of lines or polygons on a geo chart with minimal lag time. Server-side rendering technology prevents slowdowns associated with transferring data over the network to the client. You can select location shapes down to a local level, like census tracts or building footprints, and cross-filter interactively.

### Visualize with Vega

Complex server-side visualizations are specified using an [adaptation of the Vega Visualization Grammar](../apis-and-interfaces/vega). Heavy Immerse generates Vega rendering specifications behind the scenes; however, you can also generate custom visualizations using the same API. This customizable visualization system combines the agility of a lightweight frontend with the power of a GPU engine.

## Heavy Immerse <a href="#immerse" id="immerse"></a>

[Heavy Immerse](../heavyimmerse/introduction-to-immerse) is a web-based data visualization interface that uses HeavyDB and HeavyRender for visual interaction. Intuitive and easy to use, Heavy Immerse provides standard visualizations, such as line, bar, and pie charts, as well as complex data visualizations, such as geo point maps, geo heat maps, choropleths, and scatter plots. Heavy Immerse provides quick insights and makes them easy to recognize.

### Dashboards

Use [dashboards](../heavyimmerse/working-with-dashboards) to create and organize your charts. Dashboards automatically cross-filter when interacting with data, and refresh with zero latency. You can create dashboards and interact with conventional charts and data tables, as well as scatterplots and geo charts created by HeavyRender. You can also create your own queries in the [SQL editor](../heavyimmerse/immerse-sql-editor).

### Charts

Heavy Immerse lets you create a variety of different [chart types](../heavyimmerse/immerse-chart-types). You can display pointmaps, heatmaps, and choropleths alongside non-geographic charts, graphs, and tables. When you zoom into any map, visualizations refresh immediately to show data filtered by that geographic context. Multiple sources of geographic data can be rendered as different layers on the same map, making it easy to find the spatial relationships between them.

Create geo charts with multiple layers of data to visualize the relationship between factors within a geographic area. Each layer represents a distinct metric overlaid on the same map. Those different metrics can come from the same or a different underlying dataset. You can manipulate the layers in various ways, including reorder, show or hide, adjust opacity, or add or remove legends.

### Use Multiple Sources

Heavy Immerse can visually display dozens of datasets in the same dashboard, allowing you to find multi-factor relationships that you might not otherwise consider. Each chart (or groups of charts) in a dashboard can point to a different table, and filters are applied at the dataset level. Multisource dashboards make it easier to quickly compare across datasets, without merging the underlying tables.

### Streaming Data

Heavy Immerse is ideal for high-velocity data that is constantly streaming; for example, sensor, clickstream, telematics, or network data. You can see the latest data to spot anomalies and trend variances rapidly. Immerse auto-refresh automatically updates dashboards at flexible intervals that you can tailor to your use case.

## Ready to Get Started?

| **I want to...**                                          | **See...**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Install HEAVY.AI                                          | <ul><li><a href="../installation-and-configuration/installation">Installation Recipes</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Upgrade to the latest version                             | <ul><li><a href="../installation-and-configuration/installation/upgrading-omnisci">Upgrading OmniSci</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Configure HEAVY.AI                                        | <ul><li><a href="overview">Configuration Flags and Runtime Settings</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| See some tutorials and demos to help get up and running   | <ul><li><a href="../tutorials-and-demos/loading-data">Loading Data</a></li><li><a href="../tutorials-and-demos/using-omnisci-immerse">Using OmniSci Immerse</a></li><li><a href="../apis-and-interfaces/vega/vega-tutorials">Vega Tutorials</a></li><li><a href="../apis-and-interfaces/vega/try-vega">Try Vega</a></li></ul>                                                                                                                                                                                                                                                                          |
| Learn more about charts in Heavy Immerse                  | <ul><li><a href="../heavyimmerse/immerse-chart-types">Heavy Immerse Chart Types</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Use HEAVY.AI in the cloud                                 | <ul><li><a href="https://www.omnisci.com/cloud/">Try HEAVY.AI Cloud</a></li><li><a href="../installation-and-configuration/installation/get-started-aws">Getting Started with AWS AMI</a></li><li><a href="../installation-and-configuration/installation/get-started-azure">Getting Started with Microsoft Azure</a></li><li><a href="../installation-and-configuration/installation/get-started-gcp">Getting Started on Google Cloud Platform</a></li></ul>                                                                                                                                          |
| See what APIs work with HEAVY.AI                          | <ul><li><a href="../apis-and-interfaces/vega">Vega Rendering API Overview</a></li><li><a href="../apis-and-interfaces/heavysql">omnisql</a></li><li><a href="../apis-and-interfaces/thrift">Thrift</a></li><li><a href="../apis-and-interfaces/jdbc">JDBC</a></li><li><a href="../apis-and-interfaces/odbc">ODBC</a></li><li><a href="../apis-and-interfaces/vega">Vega</a></li><li><a href="../apis-and-interfaces/rjdbc">RJDBC</a></li><li><a href="https://github.com/omnisci/docs-internal/tree/7ca9a3f8fbca75498ccfec3bba1ada3eb88f2fe4/apis-and-interfaces/pyomnisci.md">pyomnisci</a></li></ul> |
| Learn about features and resolved issues for each release | <ul><li><a href="release-notes">Release Notes</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Know what issues and limitations to look out for          | <ul><li><a href="../troubleshooting-and-special-topics/known-issues-and-limitations">Known Issues, Limitations, and Changes to Default Behavior</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| See answers to frequently asked questions                 | <ul><li><a href="broken-reference">FAQ</a></li></ul>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
