コンテンツにスキップ
コマンドライン

コマンドライン

machbase-neo serve

machbase-neo サーバープロセスを起動します。

フラグ

一般フラグ

フラグ説明
--host待ち受けネットワークアドレス(デフォルト 127.0.0.1
例: --host 0.0.0.0
-c, --config設定ファイルのパス
例: --config /data/machbase-neo.conf
--pidPID ファイルのパス
例: --pid /data/machbase-neo.pid
--dataデータベースのパス(デフォルト ./machbase_home
例: --data /data/machbase
--fileファイルの保存パス(デフォルト .
例: --file /data/files
--backup-dirバックアップディレクトリのパス(デフォルト ./backups
例: --backup-dir /data/backups Since v8.0.26
--pref環境設定ディレクトリのパス
(デフォルト ~/.config/machbase)
--presetデータベースのプリセット autofogedge(デフォルト auto
例: --preset edge

データベースセッションのフラグ

Since v8.5.5
フラグ説明
--max-open-connデータベースの最大接続数。
(デフォルト -1 無制限)
--max-idle-conn接続プールの最大アイドル接続数。
<=0 ではアイドル接続を保持しません。
(デフォルト 2)
--conn-max-lifetime接続を再使用できる最大時間。
期限切れの接続は、再使用前に遅延して閉じられる場合があります。
<= 0 では接続時間による終了はありません。 (デフォルト 10m)
--conn-max-idletime接続がアイドル状態でいられる最大時間。
期限切れの接続は、再使用前に遅延して閉じられる場合があります。
<= 0 ではアイドル時間による終了はありません。 (デフォルト 1m)

HTTP フラグ

Since v8.0.43
フラグデフォルト説明
--http-linger-1HTTP ソケットオプション。-1 で SO_LINGER を無効化し、>=0 で設定します。
--http-readbuf-size0HTTP ソケットの読み取りバッファーサイズ。0 ではシステムのデフォルトを使用。
--http-writebuf-size0HTTP ソケットの書き込みバッファーサイズ。0 ではシステムのデフォルトを使用。
--http-debugfalseHTTP デバッグログを有効化
--http-debug-latency"0"指定時間を超えたリクエストだけを記録(例: “3s”)。“0” はすべて記録。
--http-allow-statz/db/statz API へのアクセスを許可する送信元 IP(カンマ区切り)。デフォルトは 127.0.0.1 のみ。

ログのフラグ

フラグデフォルト説明
--log-filename- (stdout)ログファイルのパス
例: --log-filename /data/logs/machbase-neo.log
--log-levelINFOログレベル: TRACE、DEBUG、INFO、WARN、ERROR
例: --log-level INFO
--log-appendtrue既存ログファイルに追記
--log-rotate-schedule@midnightログローテーションのスケジュール
--log-max-size10ログファイルの最大サイズ(MB)
--log-max-backups1バックアップログの最大ファイル数
--log-max-age7バックアップファイルの保持日数
--log-compressfalseバックアップファイルを gzip 圧縮
--log-time-utcfalseログのタイムスタンプを UTC で記録

リスナーのフラグ

フラグデフォルト説明
--shell-port5652SSH 待ち受けポート
--mqtt-port5653MQTT 待ち受けポート
--mqtt-sock/tmp/machbase-neo-mqtt-5653.sockMQTT UNIX ソケット
--http-port5654HTTP 待ち受けポート
--http-sock/tmp/machbase-neo-http-5654.sockHTTP UNIX ソケット
--mach-port5656Machbase ネイティブの待ち受けポート
📌
注意
--host のデフォルトはループバックアドレスのため、リモートホストから machbase-neo にアクセスできません。
リモートクライアントの接続を許可するには、--host <host-address> または --host 0.0.0.0 を指定してください。

フラグなしで machbase-neo serve を実行すると、

$ machbase-neo serve

次のコマンドと同じ動作になります。

$ machbase-neo serve --host 127.0.0.1 --data ./machbase_home --file . --preset auto

machbase-neo shell

machbase-neo シェルを起動します。他の引数がない場合は対話モードになります。

フラグ

フラグ(ロング形式)デフォルト説明
-s, --server127.0.0.1:5654machbase-neo HTTP アドレス
例: --server 127.0.0.1:5654
環境変数: NEOSHELL_HOST
--usersysユーザー名
環境変数: NEOSHELL_USER
--passwordmanagerパスワード
環境変数: NEOSHELL_PASSWORD

シェルは起動時に OS 環境変数 NEOSHELL_HOSTNEOSHELL_USERNEOSHELL_PASSWORD からサーバーアドレス、ユーザー名、パスワードを取得します。 --server--user--password を指定した場合は、その値を優先します。

ユーザー名とパスワードの優先順位

コマンドラインフラグ

--server--user--password が指定されている場合は、その値を使用します。

環境変数

$NEOSHELL_HOST(Windows では %NEOSHELL_HOST%)が設定されている場合は、サーバーアドレスに使用します。

$NEOSHELL_USER(Windows では %NEOSHELL_USER%)が設定されている場合は、ユーザー名に使用します。

$NEOSHELL_PASSWORD(Windows では %NEOSHELL_PASSWORD%)が設定されている場合は、パスワードに使用します。

デフォルト値

上記がいずれも指定されていない場合は、デフォルトの 127.0.0.1:5654sysmanager を使用します。

使用例

セキュリティのため、次のようにコマンド実行時に環境変数を設定することを推奨します。

$ NEOSHELL_PASSWORD='my-secret' machbase-neo shell --user sys

--password を使用すると、次のように ps コマンドでパスワードが表示される場合がある点に注意してください。

$ 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

クエリの実行

machbase-neo» select binary_signature from v$version;
┌────────┬─────────────────────────────────────────────┐
│ ROWNUM │ BINARY_SIGNATURE                            │
├────────┼─────────────────────────────────────────────┤
1 │ 8.0.2.develop-LINUX-X86-64-release-standard │
└────────┴─────────────────────────────────────────────┘
a row fetched.

テーブルの作成

machbase-neo» create tag table if not exists example (
  name varchar(20) primary key,
  time datetime basetime,
  value double summarized
);
executed.

スキーマの確認

machbase-neo» desc example;
┌────────┬───────┬──────────┬────────┐
│ ROWNUM │ NAME  │ TYPE     │ LENGTH │
├────────┼───────┼──────────┼────────┤
1 │ NAME  │ varchar  │     202 │ TIME  │ datetime │      83 │ VALUE │ double   │      8└────────┴───────┴──────────┴────────┘

データの挿入

machbase-neo» insert into example values('tag0', to_date('2021-08-12'), 100);
a row inserted.

データの検索

machbase-neo» select * from example;
┌────────┬──────┬─────────────────────┬───────┐
│ ROWNUM │ NAME │ TIME(LOCAL)         │ VALUE │
├────────┼──────┼─────────────────────┼───────┤
1 │ tag0 │ 2021-08-12 00:00:00 │ 100└────────┴──────┴─────────────────────┴───────┘
a row fetched.

テーブルの削除

machbase-neo» drop table example;
executed.

サブコマンド

explain

構文: explain [--full] <sql>

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                    読み取るテーブル名
  options:
    -o,--output <file>       出力ファイル(デフォルト: `-`、標準出力)
    -f,--format <format>     出力形式
                csv          CSV 形式(デフォルト)
                json         JSON 形式
       --compress <method>   圧縮方式 [gzip](デフォルトは非圧縮)
       --[no-]heading        ヘッダー出力の有無(デフォルト:false)
       --[no-]footer         フッター出力の有無(デフォルト:false)
    -d,--delimiter           CSV 区切り文字(デフォルト `,`)
       --tz                  datetime 処理のタイムゾーンを指定
    -t,--timeformat          時刻形式 [ns|ms|s|<timeformat>](デフォルト `ns`)
                             詳細は "help timeformat" を参照
    -p,--precision <int>     浮動小数点値を丸める桁数を指定

import

  import [options] <table>
  arguments:
    table                 データを書き込むテーブル名
  options:
    -i,--input <file>     入力ファイル(デフォルト: `-`、標準入力)
    -f,--format <fmt>     ファイル形式 [csv](デフォルト `csv`)
       --compress <alg>   入力データの圧縮方式(対応: gzip)
       --no-header        ヘッダーなし。最初の行をスキップしない(デフォルト)
       --charset          入力が UTF-8 以外の場合に文字エンコーディングを指定
       --header           最初の行がヘッダーの場合はスキップ
       --method           書き込み方式 [insert|append](デフォルト `insert`)
       --create-table     テーブルがない場合は作成(デフォルト:false)
       --truncate-table   新しいデータの取り込み前にテーブルを空にする(デフォルト:false)
    -d,--delimiter        CSV 区切り文字(デフォルト `,`)
       --tz               datetime 処理のタイムゾーンを指定
    -t,--timeformat       時刻形式 [ns|ms|s|<timeformat>](デフォルト `ns`)
                          詳細は "help timeformat" を参照
       --eof <string>     EOF 行を指定。[a-zA-Z0-9]+ に一致する文字列を使用(デフォルト '.')

show info

サーバー情報を表示します。

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

サーバーのインターフェイスポートを表示します。

machbase-neo» show ports;
┌─────────┬────────────────────────────────────────┐
│ SERVICE │ PORT                                   │
├─────────┼────────────────────────────────────────┤
│ 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

構文: show tables [FROM <database>[.<user>]] [LIKE <pattern>] [WITH ALL]

Since v8.7.0

一部の show サブコマンドは FROMLIKE に対応します。 FROM <database>[.<user>] は検索対象のデータベースとユーザーを指定し、LIKE <pattern> は名前のパターンで結果を絞り込みます。 パターンは一重または二重引用符で囲む SQL LIKE パターンです。% は 0 文字以上、_ は 1 文字に一致します。 FROM の代わりに IN を使用できます。WITH ALL は非表示の項目を含めます。

machbase-neo» show tables from MACHBASEDB.SYS like 'TAG%' with all;
machbase-neo» show indexes like 'IDX_%';
コマンドFROMLIKEWITH ALLLIKE の適用対象
show tablesOOOテーブル名
show indexesOO-インデックス名
show table <table>O-O-
show index <index>O---
show tags <table> [tag...]OO-タグ名
show storageOO-テーブル名
show table-usageOO-テーブル名
show lsmOO-テーブル名
show indexgapOO-テーブル名
show tagindexgapOO-テーブル名
show rollupgapOO-テーブル名
show users-O-ユーザー名
show databases-O-データベース名
show meta-tables-O-テーブル名
show virtual-tables-O-テーブル名
show sessions-O-ユーザー名
show statements-O-クエリテキスト

show tableshow indexshow tags など、対象名を引数に取るコマンドでは、<database>.<user>.<name> 形式の修飾名と FROM を併用できません。 show tags でタグ名を明示した場合は、LIKE を併用できません。

テーブル一覧を表示します。WITH ALL を指定すると、非表示のテーブルも含めます。

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

構文: show table <table> [WITH ALL]

テーブルの列一覧を表示します。WITH ALL を指定すると、非表示の列も含めます。

machbase-neo» show table example with all;
┌────────┬───────┬──────────┬────────┬──────────┐
│ 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 indexes

構文: show indexes [FROM <database>[.<user>]] [LIKE <pattern>]

インデックス一覧を表示します。FROM で検索範囲を指定し、LIKE でインデックス名を絞り込めます。

machbase-neo» show indexes from MACHBASEDB.SYS like 'TAG%';

show meta-tables

machbase-neo» show meta-tables;
┌────────┬─────────┬────────────────────────┬─────────────┐
│ ROWNUM │      ID │ NAME                   │ TYPE        │
├────────┼─────────┼────────────────────────┼─────────────┤
11000020 │ M$SYS_TABLESPACES      │ Fixed Table │
21000024 │ M$SYS_TABLESPACE_DISKS │ Fixed Table │
31000049 │ M$SYS_TABLES           │ Fixed Table │
41000051 │ M$TABLES               │ Fixed Table │
51000053 │ M$SYS_COLUMNS          │ Fixed Table │
61000054 │ M$COLUMNS              │ Fixed Table │
......

show virtual-tables

machbase-neo» show virtual-tables;
┌────────┬─────────┬─────────────────────────────────────────┬────────────────────┐
│ ROWNUM │      ID │ NAME                                    │ TYPE               │
├────────┼─────────┼─────────────────────────────────────────┼────────────────────┤
165 │ V$HOME_STAT                             │ Fixed Table (stat)293 │ V$DEMO_STAT                             │ Fixed Table (stat)3227 │ V$SAMPLEBENCH_STAT                      │ Fixed Table (stat)4319 │ V$TAGDATA_STAT                          │ Fixed Table (stat)5382 │ V$EXAMPLE_STAT                          │ Fixed Table (stat)6517 │ 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        │
├────────┼──────────┼──────────────┼──────────┼────────────┼──────────────┼─────────────────────┤
100000023 │ FOGUNLIMITED │ VUTECH   │ FORESTFIRE │ KR           │ 2024-04-22 15:56:14 │
└────────┴──────────┴──────────────┴──────────┴────────────┴──────────────┴─────────────────────┘
a row fetched.

session list

構文: session list Since v8.0.17

 machbase-neo» session list;
┌────┬───────────┬─────────┬────────────┬─────────┬─────────┬──────────┐
│ ID │ USER_NAME │ USER_ID │ STMT_COUNT │ CREATED │ LAST    │ LAST SQL │
├────┼───────────┼─────────┼────────────┼─────────┼─────────┼──────────┤
25 │ SYS       │ 11 │ 1.667ms │ 1.657ms │ CONNECT  │
└────┴───────────┴─────────┴────────────┴─────────┴─────────┴──────────┘

session kill

構文: session kill <ID> Since v8.0.17

session stat

構文: 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

構文: desc [-a] <table>

テーブル構造を確認します。

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

構文: machbase-neo restore --data <machbase_home_dir> <backup_dir> Since v8.0.17

バックアップからデータベースを復元します。

$ machbase-neo restore --data <machbase home dir>  <backup dir>

machbase-neo version

バージョンとエンジンの情報を表示します。

machbase-neo_version

machbase-neo gen-config

デフォルトの設定テンプレートを出力します。

$ 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")
......
最終更新日