SQL ingest source reference
FeatureBase can import data from MySQL, Postgres and MySQL databases using SQL queries executed at the command line.
Table of contents
Before you begin
You will need the following privileges on the database:
- Database login credentials
- SELECT privileges on source tables
- Other privileges as required
- Learn how to manage import
Connect string
The SQL ingest tool connects to the source database using your login credentials before executing SQL queries.
SQL connection strings
--driver | example --connection-string | Additional information |
---|---|---|
Postgres | 'postgresql://postgres:password@localhost:5432/molecula?sslmode=disable' OR</br> 'user=postgres password=password host=localhost port=5432 dbname=molecula sslmode=disable' | postgres connection string |
MySql | 'myusername:password@(10.0.0.1:3306)/mydb' OR 'server=sqldb.myserver.com;userid=mysqlusername;password=secret;database=mydbname' | MySQL connection strings |
SQL-Server | --driver mssql --connection-string 'server=sqldb.myserver.com;userid=mysqlusername;password=secret;database=mydbname' | SQL-Server connection strings |
Command-line SQL statements
Once connected to the source database, SQL queries copy data which is then batched, converted to Roaring Bitmap format then saved to a target FeatureBase index.
Mapping data types
This table provides mapping between FeatureBase SQL data types and internal data types used by the application for configuring ingestion, API calls, etc.
General data type | FeatureBase SQL data type | Internal data type | Additional information |
---|---|---|---|
boolean | bool | bool | |
integer | int | int | |
decimal | decimal | decimal | |
not applicable | id | mutex | Table primary key |
not applicable | * idset * idsetq | set | Used to reduce table rows and make queries more efficient. |
string | string | keyed mutex | |
not applicable | * stringset * stringsetq | keyed set | Used to reduce table rows and make queries more efficient. |
timestamp | timestamp | timestamp |
Examples
Assets table
CREATE TABLE `assets` (
`asset_tag` char(4) NOT NULL DEFAULT '',
`weight` int(8) DEFAULT 0,
`warehouse` char(10),
PRIMARY KEY (`asset_tag`)
);
Table: assets
asset_tag | weight | warehouse |
---|---|---|
ABCD | 16 | US-EAST |
EFGH | 9 | US-WEST |
IJKL | 47 | US-WEST |
MNOP | 30 | US-EAST |
Events table
CREATE TABLE `events` (
`pk` char(10) NOT NULL DEFAULT '',
`asset_tag` char(4) NOT NULL DEFAULT '',
`fan_time` date NOT NULL,
`fan_vol` char(10),
PRIMARY KEY (`pk`)
);
Table: events
pk | asset_tag | fan_time | fan_vol |
---|---|---|---|
aus-14 | ABCD | 2021-06-21 | 90% |
aus-15 | EFGH | 2021-06-19 | 10% |
aus-16 | ABCD | 2021-06-20 | 60% |
den-11 | IJKL | 2021-06-19 | 70% |
den-12 | MNOP | 2021-06-20 | 90% |
nyc-78 | MNOP | 2021-06-21 | 80% |
den-13 | MNOP | 2021-06-21 | 80% |
nyc-79 | ABCD | 2021-06-21 | 30% |
Next step
Refer to SQL ingest reference to learn how to use the command-line SQL ingest tool