事前知識

Contents

はじめる前に

このページは、SlowDash のドキュメント(特に InstallationQuick TourProject SetupData Binding)を読む前に必要な最小限の知識をまとめたものです.この文書は Claude によって自動で作成されました.

次のことができることを前提にしています.

不安がある場合でも、以下の要点だけ押さえれば開始できます.

ターミナルの基本

以下のコマンド操作に慣れているとスムーズです.

$ pwd                 # 現在のディレクトリを表示
$ ls -la              # ファイル一覧を表示
$ cd PATH/TO/DIR      # ディレクトリを移動
$ mkdir MyProject     # ディレクトリを作成
$ python3 script.py   # Python スクリプトを実行

通常はターミナルを2つ使います.

Python と仮想環境

ネイティブ環境では、SlowDash は make の中で準備されるプロジェクト内 venv を使う構成です.

代表的な流れ:

$ source PATH/TO/SLOWDASH/bin/slowdash-bashrc
$ slowdash-activate-venv
$ python your-script.py

venv の役割:

SlowDash 利用者として押さえるポイント:

有効化後の確認に便利なコマンド:

$ echo "$VIRTUAL_ENV"
$ which python
$ which pip

$VIRTUAL_ENV にパス(例:.../venv)が入っていて,pythonpip がその環境を指していれば有効化できています.

venv 有効化中のポイント:

システム Python が古すぎる場合

OS に標準で入っている Python が EOL(End-of-Life)に達している場合は、そのまま使わないことを推奨します. pyenv でサポート中の Python を先に選び、その後に通常どおり make を実行して SlowDash に venv を準備させる運用が安全です.

例:

$ pyenv install 3.12.9
$ pyenv local 3.12.9
$ make
$ source PATH/TO/SLOWDASH/bin/slowdash-bashrc
$ slowdash-activate-venv

新しいターミナルで pyenv を自動有効化する設定 (.bashrc):

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

.bashrc を編集したら、現在のシェルで再読み込みします:

$ source ~/.bashrc

確認コマンド:

$ pyenv version

使い分けの考え方:

YAML

プロジェクト設定は YAML で記述します.

最小例:

slowdash_project:
  name: QuickTour
  title: SlowDash Quick Tour
  data_source:
    url: sqlite:///QuickTourTestData.db
    time_series:
      schema: testdata[channel]@timestamp(unix)=value

YAML の重要ポイント:

データの時刻の表現形式

データを記録するときは、各データに時刻情報が付きます. この節では、その時刻情報そのものの表現形式を説明します.

実務上の違い:

迷ったら、まず unix を使うのが安全です.

RDBMS と SQL の基礎

SlowDash では、PostgreSQL、MySQL、SQLite などの SQL データベース(RDBMS)をデータソースとして使うことが多いです. 最初のイメージとしては、RDBMS は Excel のような表形式データを複数のテーブルに格納する仕組みだと考えると分かりやすいです. (厳密には、RDBMS にはテーブル間のリレーションを定義する仕組みがありますが、この導入ではまず表形式データのイメージを優先します.)

最小限の概念:

最低限読めるとよい SQL:

例:

SELECT timestamp, channel, value
FROM testdata
WHERE channel = 'ch00'
ORDER BY timestamp DESC
LIMIT 10;

Quick Tour を進めるだけなら高度な SQL は不要ですが、この基礎があると Data Binding の確認やトラブルシュートがしやすくなります.

データ記録テーブルの構造記述

次に必要なのは、データ記録テーブルの構造をどう表すかです. つまり「どの列が時刻で、どの列がチャンネルで、どの列が値か」を記述します. SlowDash ではこの構造記述を「スキーマ記述子」と呼びます.

よく使う形:

table[tag]@time_column(type)=value_column

例:

意味:

ネットワークとポートの基本

SlowDash の例ではポート 18881 をよく使います.

Docker / Docker Compose の基礎

SlowDash において、コンテナは必須ではなくオプションです. コンテナに慣れていない場合は、最初から Docker を使う必要はありません.まずはネイティブ構成で始めて問題ありません.

最初にコンテナを使わなくてよいケース:

コンテナに慣れていない場合は、まず次のイメージを持つと分かりやすいです.

SlowDash での意味合いは次の通りです.

コンテナ導入で得られる主なメリット:

例でよく出るオプションの意味:

最小の単体コンテナ例:

$ cd YOUR_PROJECT_DIR
$ docker run --rm -p 18881:18881 -v $(pwd):/project slowproj/slowdash

このコマンドで起きること:

  1. 必要なら Docker がイメージを取得する
  2. コンテナが起動し、内部で SlowDash が動く
  3. ブラウザで http://localhost:18881 を開いて利用する
  4. 停止するとコンテナは削除される(--rm)が、ホスト側のプロジェクトファイルは残る

最小の Docker Compose 例:

実運用では、データベースもホストに直接インストールせず、コンテナで使いたい場合がよくあります. この場合、SlowDash コンテナとデータベースコンテナを同時に動かす必要があり、少なくとも2つのコンテナを管理することになります. Docker Compose は、この複数コンテナの起動・停止を1つの設定ファイルから自動化する仕組みです.

services:
  postgres:
    image: postgres:16
    environment:
      - POSTGRES_USER=slowdash
      - POSTGRES_PASSWORD=slowdash
      - POSTGRES_DB=slowdash
    volumes:
      - postgres-data:/var/lib/postgresql/data

  slowdash:
    image: slowproj/slowdash
    depends_on:
      - postgres
    volumes:
      - .:/project
    ports:
      - "18881:18881"

volumes:
  postgres-data:

Docker Compose を使う利点:

起動と停止:

$ docker compose up
$ docker compose down