MCPcopy Index your code
hub / github.com/apache/asterixdb

github.com/apache/asterixdb @apache-asterixdb-0.9.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release apache-asterixdb-0.9.9 ↗ · + Follow
51,092 symbols 192,719 edges 6,419 files 4,512 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

What is AsterixDB?

AsterixDB is a BDMS (Big Data Management System) with a rich feature set that sets it apart from other Big Data platforms. Its feature set makes it well-suited to modern needs such as web data warehousing and social data storage and analysis. AsterixDB has:

  • Data model

A semistructured NoSQL style data model (ADM) resulting from extending JSON with object database ideas

  • Query languages

An expressive and declarative query language (SQL++ that supports a broad range of queries and analysis over semistructured data

  • Scalability

A parallel runtime query execution engine, Apache Hyracks, that has been scale-tested on up to 1000+ cores and 500+ disks

  • Native storage

Partitioned LSM-based data storage and indexing to support efficient ingestion and management of semistructured data

  • External storage

Support for query access to externally stored data (e.g., data in HDFS) as well as to data stored natively by AsterixDB

  • Data types

A rich set of primitive data types, including spatial and temporal data in addition to integer, floating point, and textual data

  • Indexing

Secondary indexing options that include B+ trees, R trees, and inverted keyword (exact and fuzzy) index types

  • Transactions

Basic transactional (concurrency and recovery) capabilities akin to those of a NoSQL store

Learn more about AsterixDB at its website.

Build from source

To build AsterixDB from source, you should have a platform with the following:

  • A Unix-ish environment (Linux, OS X, will all do).
  • git
  • Maven 3.3.9 or newer.
  • JDK 11 or newer.
  • Python 3.6+ with pip and venv

Instructions for building the master:

  • Checkout AsterixDB master:

    $git clone https://github.com/apache/asterixdb.git
    
  • Build AsterixDB master:

    $cd asterixdb
    $mvn clean package -DskipTests
    

Run the build on your machine

Here are steps to get AsterixDB running on your local machine:

  • Start a single-machine AsterixDB instance:

    $cd asterixdb/asterix-server/target/asterix-server-*-binary-assembly/apache-asterixdb-*-SNAPSHOT
    $./opt/local/bin/start-sample-cluster.sh
    
  • Good to go and run queries in your browser at:

    http://localhost:19006
    
  • Read more documentation to learn the data model, query language, and how to create a cluster instance.

Documentation

To generate the documentation, run asterix-doc with the generate.rr profile in maven, e.g mvn -Pgenerate.rr ... Be sure to run mvn package beforehand or run mvn site in asterix-lang-sqlpp to generate some resources that are used in the documentation that are generated directly from the grammar.

Community support

  • Users

maling list: users@asterixdb.apache.org

Join the list by sending an email to users-subscribe@asterixdb.apache.org

  • Developers and contributors

mailing list:dev@asterixdb.apache.org

Join the list by sending an email to dev-subscribe@asterixdb.apache.org

Extension points exported contracts — how you extend this code

IStorageManager (Interface)
Provides storage components during hyracks tasks execution [6 implementers]
hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/IStorageManager.java
IExpressionAnnotation (Interface)
Represents an expression annotation. Implementation classes are used as keys in the expression annotation map [11 implementers]
hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/IExpressionAnnotation.java
ITypedAdapterFactory (Interface)
Base interface for IGenericDatasetAdapterFactory and ITypedDatasetAdapterFactory. Acts as a marker interface indicating [6 …
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/api/ITypedAdapterFactory.java
IExceptionHandler (Interface)
Handles an exception encountered during processing of a data frame. In the case when the exception is of type {@code Fra [53 …
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/IExceptionHandler.java
IColumnKeyValueReader (Interface)
Accessor for key columns [22 implementers]
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/IColumnKeyValueReader.java
IStatementExecutorFactory (Interface)
An interface for creating a statement executor which can be provided by implementing IStatementExecutorExtension [124 …
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutorFactory.java
IExternalFilePrinterFactory (Interface)
IExternalFileWriter printer factory [155 implementers]
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/writer/IExternalFilePrinterFactory.java
IATypeVisitor (Interface)
Allows for a specialized processing for the IAType @param return type @param argument type [7 implementers]
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IATypeVisitor.java

Core symbols most depended-on inside this repo

add
called by 2344
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/IFunctionCollection.java
get
called by 1839
asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/IAsterixFieldValueGenerator.java
append
called by 1763
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SessionOutput.java
getValue
called by 1631
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IValueExtractor.java
size
called by 1558
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/IACollection.java
get
called by 1345
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/config/IOption.java
getValue
called by 1318
hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/api/IPrimitiveValueProvider.java
put
called by 1273
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICoordinationService.java

Shape

Method 42,969
Class 6,566
Interface 866
Function 399
Enum 274
Route 18

Languages

Java97%
Python2%
TypeScript1%

Modules by API surface

asterixdb/asterix-examples/src/main/resources/tweetbook-demo/bottle.py363 symbols
asterixdb/asterix-examples/src/main/resources/admaql101-demo/bottle.py363 symbols
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java228 symbols
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java161 symbols
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java150 symbols
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java143 symbols
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/CompiledStatements.java130 symbols
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java111 symbols
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java98 symbols
asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/external/data/DataGeneratorForSpatialIndexEvaluation.java92 symbols
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java90 symbols
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/client/HyracksClientInterfaceFunctions.java89 symbols

For agents

$ claude mcp add asterixdb \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact