Get Started

Sorry, your browser does not support inline SVG.

Download, Execute and Go!

YottaDB is available free of charge. Install YottaDB on your Linux machine, or use a Docker container, and begin working today!

Install YottaDB using the Install Script

Download the YottaDB installer script in a temporary directory, e.g.:

mkdir /tmp/tmp ; wget -P /tmp/tmp https://gitlab.com/YottaDB/DB/YDB/raw/master/sr_unix/ydbinstall.sh

Make the file executable:

cd /tmp/tmp ; chmod +x ydbinstall.sh

Install YottaDB (typical installation):

sudo ./ydbinstall.sh --utf8 default --verbose

To list all options:

./ydbinstall.sh --help

Use a Docker Container

Docker Hub has prebuilt YottaDB images. You must have at least docker 17.05.

Pull an image with binaries built from the latest source code:

docker pull yottadb/yottadb-debian:latest-master

The Docker image supports volumes, for persistence and for sharing code and routines between host and container, by mounting a local directory to /data in the container. For example, to use the directory ydb-data as the volume:

docker run -it -v `pwd`ydb-data:/data --network=host yottadb/yottadb-debian:latest-master

Note: You may need to use “sudo docker” in place of “docker” on some platforms depending on the permissions of the docker socket.

Access from C

Download the sayhelloC.C program, compile it, and run it to set a database node:

root@mnementh:/data# wget https://docs.yottadb.com/AcculturationGuide/sayhelloC.c
...
root@mnementh:/data# gcc $(pkg-config --libs --cflags yottadb) -o sayhelloC sayhelloC.c -lyottadb
root@mnementh:/data# ./sayhelloC
root@mnementh:/data#

Access from Go:

Download the sayhelloGo.go program, compile it, and run it to set a database node:

root@mnementh:/data# wget https://docs.yottadb.com/AcculturationGuide/sayhelloGo.go
...
root@mnementh:/data# go build sayhelloGo.go
root@mnementh:/data# ./sayhelloGo
root@mnementh:/data#

Access from M:

Download the sayhelloM.m program to the r/ subdirectory and run it. It does not need a separate compilation step:

root@mnementh:/data# wget -P r/ https://docs.yottadb.com/AcculturationGuide/sayhelloM.m
...
root@mnementh:/data# yottadb -run sayhelloM
root@mnementh:/data#

Access from Perl:

Download the sayhelloPerl.pl program, make it executable and run it. It does not need a separate compilation step:

root@mnementh:/data# wget https://docs.yottadb.com/AcculturationGuide/sayhelloPerl.pl
...
root@mnementh:/data# chmod +x sayhelloPerl.pl
root@mnementh:/data# ./sayhelloPerl.pl 
root@mnementh:/data#

Access from Rust:

Create a directory for Rust development, and create a package for the sayhelloRust program, and a dependency on YottaDB for that package. Replace the src/main.rs program with sayhelloRust.rs, compile it, move the compiled binary to the $ydb_dir directory and execute it.

root@mnementh:/data# mkdir yottadb-rust ; cd yottadb-rust
root@mnementh:/data/yottadb-rust# export USER=`whoami` # needed by cargo
root@mnementh:/data/yottadb-rust# cargo new sayhelloRust ; cd sayhelloRust/
Created binary (application) `sayhelloRust` package
root@mnementh:/data/yottadb-rust/sayhelloRust# wget https://docs.yottadb.com/AcculturationGuide/sayhelloRust.rs
...
root@mnementh:/data/yottadb-rust/sayhelloRust# mv sayhelloRust.rs src/main.rs
root@mnementh:/data/yottadb-rust/sayhelloRust# echo 'yottadb = "0.1"' >> Cargo.toml
root@mnementh:/data/yottadb-rust/sayhelloRust# cargo build
Updating crates.io index
...
Compiling sayhelloRust v0.1.0 (/data/yottadb-rust/sayhelloRust)
Finished dev [unoptimized + debuginfo] target(s) in 50.92s
root@mnementh:/data/yottadb-rust/sayhelloRust# mv target/debug/sayhelloRust $ydb_dir ; cd $ydb_dir
root@mnementh:/data# ./sayhelloRust 
root@mnementh:/data#

Results:

Dump the database to see updates from programs in multiple languages. The MUPIP program is the YottaDB system administration tool.

root@mnementh:/data# mupip extract -label=Hello -select=hello -format=zwr -stdout
Hello UTF-8
17-JAN-2020 22:29:55 ZWR
^hello("C")="Hello, world!"
^hello("Go")="สวัสดีชาวโลก"
^hello("M")="Приветствую, мир!"
^hello("Perl")="Grüẞ Gott Welt"
^hello("Rust")="こんにちは世界"
%YDB-I-RECORDSTAT, ^hello: Key cnt: 5 max subsc len: 13 max rec len: 36 max node len: 44
%YDB-I-RECORDSTAT, TOTAL: Key cnt: 5 max subsc len: 13 max rec len: 36 max node len: 44
root@mnementh:/data#

 

Dig in with the Acculturation Guide

Since it’s easier to learn by doing, the Acculturation Guide is a series of guided, self-paced, hands-on exercises using virtual machines to get you going with database configuration, journaling, replication, backup, and more.

Documentation

For Supported hardware & operating systems, check the Platforms section of the Release Notes for the latest release.