Command line
machbase-neo serve
Start machbase-neo server process.
Flags
General flags
flag | default | desc |
---|---|---|
--host | 127.0.0.1 | listening network addr ex) --host 0.0.0.0 |
-c , --config | config file location ex) --config /data/machbase-neo.conf | |
--pid | file path to save pid ex) --pid /data/machbase-neo.pid | |
--data | ./machbase_home | path to database ex) --data /data/machbase |
--file | . | path to files ex) --file /data/files |
--backup-dir | ./backups | path to the backup dir ex) --backup-dir /data/backups
Since v8.0.26 |
--pref | ~/.config/machbase | path to preference directory path |
--preset | auto | database preset auto , fog , edge ex) --preset edge |
Log flags
flag | default | desc |
---|---|---|
--log-filename | - (stdout) | log file path ex) --log-filename /data/logs/machbase-neo.log |
--log-level | INFO | log level. TRACE, DEBUG, INFO, WARN, ERROR ex) --log-level INFO |
--log-append | true | append existing log file. Since v8.0.13 |
--log-rotate-schedule | @midnight | time scheduled log file rotation Since v8.0.13 |
--log-max-size | 10 | file max size in MB Since v8.0.13 |
--log-max-backups | 1 | maximum log file backups Since v8.0.13 |
--log-max-age | 7 | maximum days in backup files Since v8.0.13 |
--log-compress | false | gzip compress the backup files Since v8.0.13 |
--log-time-utc | false | use UTC time for logging Since v8.0.13 |
Listener flags
flag | default | desc |
---|---|---|
--shell-port | 5652 | ssh listen port |
--mqtt-port | 5653 | mqtt listen port |
--http-port | 5654 | http listen port |
--grpc-port | 5655 | grpc listen port |
--grpc-sock | mach-grpc.sock | grpc unix domain socket |
--grpc-insecure | false | set true to use plain tcp socket,disable TLS Since v8.0.18 |
--mach-port | 5656 | machbase native listen port |
Since the default of
--host
is the loopback address, it is not allowed to access machbase-neo from the remote hosts.Set
--host <host-address>
or --host 0.0.0.0
for accepting the network connections from remote clients.If execute machbase-neo serve
with no flags,
$ machbase-neo serve
it is equivalent with
$ machbase-neo serve --host 127.0.0.1 --data ./machbase_home --file . --preset auto
machbase-neo shell
Start machbase-neo shell. It will start interactive mode shell if there are no other arguments.
Flags
flag (long) | default | desc |
---|---|---|
-s , --server | tcp://127.0.0.1:5655 | machbase-neo’s gRPC address. e.g. -s unix://./mach-grpc.sock e.g. --server tcp://127.0.0.1:5655 |
--user | sys | user name. env: NEOSHELL_USER
Since v8.0.4 |
--password | manager | password. env: NEOSHELL_PASSWORD
Since v8.0.4 |
When machbase-neo shell starts, it is looking for the user name and password
from OS’s environment variables NEOSHELL_USER
and NEOSHELL_PASSWORD
.
Then if the flags --user
and --password
are provided,
it will override the provided values instead of the environment variables.
Precedence of username and password
Command line flags
If --user
, --password
is provided? Use the given values
Environment variables
If $NEOSHELL_USER
(on windows %NEOSHELL_USER%
) is set? Use the value as the user name.
If $NEOSHELL_PASSWORD
(on windows %NEOSHELL_PASSWORD%
) is set? Use the value as the password.
Default
None of those are provided? Use default value sys
and manager
.
Practical usage
For the security, use instant environment variables as below example.
$ NEOSHELL_PASSWORD='my-secret' machbase-neo shell --user sys
Be aware when you use --password
flag, the secret can be exposed by simple ps
command as like an example below.
$ machbase-neo shell --user sys --password manager
$ ps -aef |grep machbase-neo
501 13551 3598 0 9:33AM ttys000 0:00.07 machbase-neo shell --user sys --password manager
Run Query
machbase-neoΒ» select binary_signature from v$version;
ββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β ROWNUM β BINARY_SIGNATURE β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β 1 β 8.0.2.develop-LINUX-X86-64-release-standard β
ββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
a row fetched.
Create Table
machbase-neoΒ» create tag table if not exists example (name varchar(20) primary key, time datetime basetime, value double summarized);
executed.
Schema Table
machbase-neoΒ» desc example;
ββββββββββ¬ββββββββ¬βββββββββββ¬βββββββββ
β ROWNUM β NAME β TYPE β LENGTH β
ββββββββββΌββββββββΌβββββββββββΌβββββββββ€
β 1 β NAME β varchar β 20 β
β 2 β TIME β datetime β 8 β
β 3 β VALUE β double β 8 β
ββββββββββ΄ββββββββ΄βββββββββββ΄βββββββββ
Insert Table
machbase-neoΒ» insert into example values('tag0', to_date('2021-08-12'), 100);
a row inserted.
Select Table
machbase-neoΒ» select * from example;
ββββββββββ¬βββββββ¬ββββββββββββββββββββββ¬ββββββββ
β ROWNUM β NAME β TIME(LOCAL) β VALUE β
ββββββββββΌβββββββΌββββββββββββββββββββββΌββββββββ€
β 1 β tag0 β 2021-08-12 00:00:00 β 100 β
ββββββββββ΄βββββββ΄ββββββββββββββββββββββ΄ββββββββ
a row fetched.
Drop Table
machbase-neoΒ» drop table example;
executed.
Sub commands
explain
Syntax explain [--full] <sql>
Shows the execution plan of the sql.
machbase-neoΒ» explain select * from example where name = 'tag.1';
PROJECT
TAG READ (RAW)
KEYVALUE INDEX SCAN (_EXAMPLE_DATA_0)
[KEY RANGE]
* IN ()
VOLATILE INDEX SCAN (_EXAMPLE_META)
[KEY RANGE]
*
export
export [options] <table>
arguments:
table table name to read
options:
-o,--output <file> output file (default:'-' stdout)
-f,--format <format> output format
csv csv format (default)
json json format
--compress <method> compression method [gzip] (default is not compressed)
--[no-]heading print header message (default:false)
--[no-]footer print footer message (default:false)
-d,--delimiter csv delimiter (default:',')
--tz timezone for handling datetime
-t,--timeformat time format [ns|ms|s|<timeformat>] (default:'ns')
consult "help timeformat"
-p,--precision <int> set precision of float value to force round
import
import [options] <table>
arguments:
table table name to write
options:
-i,--input <file> input file, (default: '-' stdin)
-f,--format <fmt> file format [csv] (default:'csv')
--compress <alg> input data is compressed in <alg> (support:gzip)
--no-header there is no header, do not skip first line (default)
--charset set character encoding, if input is not UTF-8
--header first line is header, skip it
--method write method [insert|append] (default:'insert')
--create-table create table if it doesn't exist (default:false)
--truncate-table truncate table ahead importing new data (default:false)
-d,--delimiter csv delimiter (default:',')
--tz timezone for handling datetime
-t,--timeformat time format [ns|ms|s|<timeformat>] (default:'ns')
consult "help timeformat"
--eof <string> specify eof line, use any string matches [a-zA-Z0-9]+ (default: '.')
show info
Display the server information.
machbase-neoΒ» show info;
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ
β NAME β VALUE β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββββ€
β build.version β v2.0.0 β
β build.hash β #c953293f β
β build.timestamp β 2023-08-29T08:08:00 β
β build.engine β static_standard_linux_amd64 β
β runtime.os β linux β
β runtime.arch β amd64 β
β runtime.pid β 57814 β
β runtime.uptime β 2h 30m 57s β
β runtime.goroutines β 45 β
β mem.sys β 32.6 MB β
β mem.heap.sys β 19.0 MB β
β mem.heap.alloc β 9.7 MB β
β mem.heap.in-use β 13.0 MB β
β mem.stack.sys β 1,024.0 KB β
β mem.stack.in-use β 1,024.0 KB β
ββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββ
show ports
Display the server’s interface ports
machbase-neoΒ» show ports;
βββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β SERVICE β PORT β
βββββββββββΌβββββββββββββββββββββββββββββββββββββββββ€
β grpc β tcp://127.0.0.1:5655 β
β grpc β unix:///database/mach-grpc.sock β
β http β tcp://127.0.0.1:5654 β
β mach β tcp://127.0.0.1:5656 β
β mqtt β tcp://127.0.0.1:5653 β
β shell β tcp://127.0.0.1:5652 β
βββββββββββ΄βββββββββββββββββββββββββββββββββββββββββ
show tables
Syntax: show tables [-a]
Display the table list. If flag -a
is specified, the result includes the hidden tables.
machbase-neoΒ» show tables;
ββββββββββ¬βββββββββββββ¬βββββββ¬ββββββββββββββ¬ββββββββββββ
β ROWNUM β DB β USER β NAME β TYPE β
ββββββββββΌβββββββββββββΌβββββββΌββββββββββββββΌββββββββββββ€
β 1 β MACHBASEDB β SYS β EXAMPLE β Tag Table β
β 2 β MACHBASEDB β SYS β TAG β Tag Table β
β 3 β MACHBASEDB β SYS β TAGDATA β Tag Table β
ββββββββββ΄βββββββββββββ΄βββββββ΄ββββββββββββββ΄ββββββββββββ
show table
Syntax show table [-a] <table>
Display the column list of the table. If flag -a
is specified, the result includes the hidden columns.
machbase-neoΒ» show table example -a;
ββββββββββ¬ββββββββ¬βββββββββββ¬βββββββββ¬βββββββββββ
β ROWNUM β NAME β TYPE β LENGTH β DESC β
ββββββββββΌββββββββΌβββββββββββΌβββββββββΌβββββββββββ€
β 1 β NAME β varchar β 100 β tag name β
β 2 β TIME β datetime β 31 β basetime β
β 3 β VALUE β double β 17 β β
β 4 β _RID β long β 20 β β
ββββββββββ΄ββββββββ΄βββββββββββ΄βββββββββ΄βββββββββββ
show meta-tables
machbase-neoΒ» show meta-tables;
ββββββββββ¬ββββββββββ¬βββββββββββββββββββββββββ¬ββββββββββββββ
β ROWNUM β ID β NAME β TYPE β
ββββββββββΌββββββββββΌβββββββββββββββββββββββββΌββββββββββββββ€
β 1 β 1000020 β M$SYS_TABLESPACES β Fixed Table β
β 2 β 1000024 β M$SYS_TABLESPACE_DISKS β Fixed Table β
β 3 β 1000049 β M$SYS_TABLES β Fixed Table β
β 4 β 1000051 β M$TABLES β Fixed Table β
β 5 β 1000053 β M$SYS_COLUMNS β Fixed Table β
β 6 β 1000054 β M$COLUMNS β Fixed Table β
......
show virtual-tables
machbase-neoΒ» show virtual-tables;
ββββββββββ¬ββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββ
β ROWNUM β ID β NAME β TYPE β
ββββββββββΌββββββββββΌββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββ€
β 1 β 65 β V$HOME_STAT β Fixed Table (stat) β
β 2 β 93 β V$DEMO_STAT β Fixed Table (stat) β
β 3 β 227 β V$SAMPLEBENCH_STAT β Fixed Table (stat) β
β 4 β 319 β V$TAGDATA_STAT β Fixed Table (stat) β
β 5 β 382 β V$EXAMPLE_STAT β Fixed Table (stat) β
β 6 β 517 β V$TAG_STAT β Fixed Table (stat) β
......
show users
machbase-neoΒ» show users;
ββββββββββ¬ββββββββββββ
β ROWNUM β USER_NAME β
ββββββββββΌββββββββββββ€
β 1 β SYS β
ββββββββββ΄ββββββββββββ
a row fetched.
show license
machbase-neoΒ» show license;
ββββββββββ¬βββββββββββ¬βββββββββββββββ¬βββββββββββ¬βββββββββββββ¬βββββββββββββββ¬ββββββββββββββββββββββ
β ROWNUM β ID β TYPE β CUSTOMER β PROJECT β COUNTRY_CODE β INSTALL_DATE β
ββββββββββΌβββββββββββΌβββββββββββββββΌβββββββββββΌβββββββββββββΌβββββββββββββββΌββββββββββββββββββββββ€
β 1 β 00000023 β FOGUNLIMITED β VUTECH β FORESTFIRE β KR β 2024-04-22 15:56:14 β
ββββββββββ΄βββββββββββ΄βββββββββββββββ΄βββββββββββ΄βββββββββββββ΄βββββββββββββββ΄ββββββββββββββββββββββ
a row fetched.
session list
Syntax: session list
Since v8.0.17
machbase-neoΒ» session list;
ββββββ¬ββββββββββββ¬ββββββββββ¬βββββββββββββ¬ββββββββββ¬ββββββββββ¬βββββββββββ
β ID β USER_NAME β USER_ID β STMT_COUNT β CREATED β LAST β LAST SQL β
ββββββΌββββββββββββΌββββββββββΌβββββββββββββΌββββββββββΌββββββββββΌβββββββββββ€
β 25 β SYS β 1 β 1 β 1.667ms β 1.657ms β CONNECT β
ββββββ΄ββββββββββββ΄ββββββββββ΄βββββββββββββ΄ββββββββββ΄ββββββββββ΄βββββββββββ
session kill
Syntax session kill <ID>
Since v8.0.17
session stat
Syntax: session stat
Since v8.0.17
machbase-neoΒ» session stat;
ββββββββββββββββββ¬ββββββββ
β NAME β VALUE β
ββββββββββββββββββΌββββββββ€
β CONNS β 1 β
β CONNS_USED β 17 β
β STMTS β 0 β
β STMTS_USED β 20 β
β APPENDERS β 0 β
β APPENDERS_USED β 0 β
β RAW_CONNS β 1 β
ββββββββββββββββββ΄ββββββββ
desc
Syntax desc [-a] <table>
Describe table structure.
machbase-neoΒ» desc example;
ββββββββββ¬ββββββββ¬βββββββββββ¬βββββββββ¬βββββββββββ
β ROWNUM β NAME β TYPE β LENGTH β DESC β
ββββββββββΌββββββββΌβββββββββββΌβββββββββΌβββββββββββ€
β 1 β NAME β varchar β 100 β tag name β
β 2 β TIME β datetime β 31 β basetime β
β 3 β VALUE β double β 17 β β
ββββββββββ΄ββββββββ΄βββββββββββ΄βββββββββ΄βββββββββββ
machbase-neo restore
Syntax machbase-neo restore --data <machbase_home_dir> <backup_dir>
Since v8.0.17
Restore database from backup.
$ machbase-neo restore --data <machbase home dir> <backup dir>
machbase-neo version
Show version and engine info.
machbase-neo gen-config
Prints out default config template.
$ machbase-neo gen-config β΅
define DEF {
LISTEN_HOST = flag("--host", "127.0.0.1")
SHELL_PORT = flag("--shell-port", "5652")
MQTT_PORT = flag("--mqtt-port", "5653")
HTTP_PORT = flag("--http-port", "5654")
GRPC_PORT = flag("--grpc-port", "5655")
......