BlobCity on Digital Ocean Marketplace
Using marketplace listing of BlobCity DB on Digital Ocean
Create a BlobCity DB Droplet
Once you create a BlobCity DB Droplet the Droplet boots up with an instance of the DB running on it. You will need to ssh into this Droplet to retrieve a randomly generated password for the root
user of the DB.
SSH into Droplet
ssh root@<ip-address-of-droplet>
The username of the default user on the Droplet is root
. Assuming you provided your SSH key while creating the Droplet, you should be able to directly access the Droplet using the above command.
Getting DB Access Credentials
Your BlobCity DB instance starts with a user called root
already created. The password for this user is automatically generated at first boot and written to a text file located at /mnt/data/root-pass.txt
.
CAT the root-pass.txt
file to retrieve the randomly generated password to the root
user.
cat /mnt/data/root-pass.txt
You may retain this password for accessing your database, but it is highly recommended you change your password upon first login.
Accessing DB CLI
The command line interface is the preferred choice for managing your database instance. You may connect to the CLI interface either from within the SSH session or from an external machine using the Droplet IP address. Telnet on port 10113 will allow you to access the CLI interface.
telnet localhost 10113
telnet <droplet-ip> 10113
You may also use nc <droplet-ip> 10113
if telnet
is not installed on your computer. It is important to note that the telnet
or nc
connection is not secured, hence it is recommended that you always use the CLI from within an SSH session rather than using over the IP address.
Creating a Datastore & Collection
You must create a datastore and then create collections within the datastore to use the database. The CLI interface can be used to create both the datastore and collections within the datastore.
blobcity>create-ds test
Datastore successfully created
blobcity>create-collection test.my_collection
Collection successfully created
blobcity>create-collection test.my_collection2
Collection successfully created
You may now insert data into any of the created collections and fire SQL queries on data stored in the collections.
Inserting Data
Data can be inserted using the REST API, or data files can be loaded onto the server and then an import command maybe fired using the CLI.
The database can access data files located within the folder /mnt/data/{ds}/ftp
. You will need to use scp
, rsync
or any other mechanism you are comfortable with to load your data files into this folder on the server.
The {ds}
attribute must be substituted with the name of your datastore.
blobcity>import-csv test.my_collection /my_file.csv
Done in 37 (ms)
The above example imports the CSV file my_file.csv
into collection my_collection
. The first row of the CSV is assumed to contain column names. my_file.csv
in this case must be placed at /mnt/data/test/ftp/my_file.csv
on the server for the import operation to succeed.
Running SQL Queries
Once data is loaded, you may fire an SQL query on the collection to select your data. You can do this using the CLI or the REST interface.
blobcity>sql test: select * from `test`.`my_collection` where `col1` = 2
Mount a Storage Volume
While not necessary, it is highly recommend you setup a block storage volume to store your data. The database by default stores data onto the boot volume, which is susceptible to data loss on terminating the Droplet or if the Droplet crashes for any reason.
A block storage volume can be retained on terminating a Droplet and the same volume can be mounted on another Droplet you create, thereby allowing you flexibility and better protection against total data loss.
The volume must be XFS formatted for optimal performance, specially if you primarily plan to use the on-disk
storage engine. XFS or EXT4 maybe used with almost equal performance if primary data storage is in-memory
.
Mount the volume at /mnt/data
. This will override any existing data you have placed inside the folder. If you desire to mount the volume at another location say /mnt/my_vol
, then the database can be configured to write to this volume by changing the volume mount config in /opt/docker-compose.yml
.
Updated over 5 years ago