Cassandra SQL Exporter¶
Introduction¶
Given ALFA objects can be flattened to relational structures, generating SQL/relational table structures was a next logical step.
Apache Cassandra was selected as a candidate store purely for the ease in testing the SQL CREATE statements in the JVM as part of unit tests on the generated SQL statements.
Other BigData/NoSQL Database SQL can easily be generated by extending this exporter.
Please note this exporter is highly experimental at this stage and is likely to change to be better
aligned with the flattened table<T>
column structures.
Usage Steps¶
- Similar to generating Java and CSharp, Python is generated using the following commandline.
alfa -c -e cassandra -o generated/csql src
Example¶
Given the following data model below, the Cassandra Exporter will generate a Create table SQL.
record SalesPerson {
Name : string
Customers : list< Customer >
}
record Customer {
Id : uuid
Name : string
DateOfBirth : date
Accounts : set< string >
CustomerType : enum< Standard, Gold, Platinum >
}
Generated Cassandra SQL:
CREATE TABLE demo.SalesPerson (
genKey__ uuid PRIMARY KEY,
Name text,
Customers_seqIndex bigint,
Id uuid,
entry_Name text,
DateOfBirth date,
Accounts_setIndex bigint,
Accounts text,
CustomerType text
)