ClickHouse/docs/ja/chdb/guides/clickhouse-local.md

128 lines
3.9 KiB
Markdown
Raw Normal View History

2024-11-18 02:58:58 +00:00
---
title: clickhouse-localデータベースの使用方法
sidebar_label: clickhouse-localデータベースの使用方法
slug: /ja/chdb/guides/clickhouse-local
description: chDBでclickhouse-localデータベースを使用する方法を学びます。
keywords: [chdb, clickhouse-local]
---
[clickhouse-local](/ja/operations/utilities/clickhouse-local) は、ClickHouseの埋め込みバージョンを使用するCLIであり、サーバーをインストールすることなくClickHouseの機能を利用できるようにします。このガイドでは、chDBからclickhouse-localデータベースを使用する方法を学びます。
## セットアップ
最初に仮想環境を作成しましょう:
```bash
python -m venv .venv
source .venv/bin/activate
```
次に、chDBをインストールします。
バージョン2.0.2以上であることを確認してください:
```bash
pip install "chdb>=2.0.2"
```
続いて[ipython](https://ipython.org/)をインストールします:
```bash
pip install ipython
```
このガイドの残りのコマンドを実行するために`ipython`を使用します。以下のコマンドで起動できます:
```bash
ipython
```
## clickhouse-localのインストール
clickhouse-localのダウンロードとインストールは、[ClickHouseのダウンロードとインストール](https://clickhouse.com/docs/ja/install)と同じです。以下のコマンドを実行します:
```bash
curl https://clickhouse.com/ | sh
```
データをディレクトリに保存してclickhouse-localを起動するには、`--path`を指定する必要があります:
```bash
./clickhouse -m --path demo.chdb
```
## clickhouse-localにデータを取り込む
デフォルトのデータベースはメモリにデータを保存するだけなので、ディスクにデータを保持するには名前付きデータベースを作成する必要があります。
```sql
CREATE DATABASE foo;
```
次にテーブルを作成し、ランダムな数値を挿入します:
```sql
CREATE TABLE foo.randomNumbers
ORDER BY number AS
SELECT rand() AS number
FROM numbers(10_000_000);
```
データを確認するためにクエリを実行してみましょう:
```sql
SELECT quantilesExact(0, 0.5, 0.75, 0.99)(number) AS quants
FROM foo.randomNumbers
┌─quants────────────────────────────────┐
│ [69,2147776478,3221525118,4252096960] │
└───────────────────────────────────────┘
```
その後、CLIから`exit;`することを忘れないでください。ディレクトリに対するロックを保持できるのは一つのプロセスだけです。この操作を怠ると、chDBからデータベースに接続しようとしたときに次のエラーが発生します
```text
ChdbError: Code: 76. DB::Exception: Cannot lock file demo.chdb/status. Another server instance in same directory is already running. (CANNOT_OPEN_FILE)
```
## clickhouse-localデータベースへの接続
`ipython`シェルに戻り、chDBから`session`モジュールをインポートします:
```python
from chdb import session as chs
```
`demo.chdb`を指すセッションを初期化します:
```
sess = chs.Session("demo.chdb")
```
次に、数値の分位を返す同じクエリを実行できます:
```python
sess.query("""
SELECT quantilesExact(0, 0.5, 0.75, 0.99)(number) AS quants
FROM foo.randomNumbers
""", "Vertical")
Row 1:
──────
quants: [0,9976599,2147776478,4209286886]
```
chDBからこのデータベースにデータを挿入することもできます
```python
sess.query("""
INSERT INTO foo.randomNumbers
SELECT rand() AS number FROM numbers(10_000_000)
""")
Row 1:
──────
quants: [0,9976599,2147776478,4209286886]
```
その後、chDBまたはclickhouse-localから分位数クエリを再実行できます。