バイトベースの構築とClickHouseへの接続方法

Bytebase は、SQL 監査、変更、ファイル保持、ロールバックなどの機能を提供するデータベース CI/CD ツールです。この記事では、Bytebase の使用方法について簡単に説明します。

1. インストール

公式 Docker イメージを通じて Bytebase をすぐに体験できます。コマンドは次のとおりです。

docker run --init \
  --name bytebase \
  --platform linux/amd64 \
  --restart always \
  --publish 5678:8080 \
  --health-cmd "curl --fail http://localhost:5678/healthz || exit 1" \
  --health-interval 5m \
  --health-timeout 60s \
  --volume ~/.bytebase/data:/var/opt/bytebase \
  bytebase/bytebase:1.12.0 \
  --data /var/opt/bytebase \
  --port 8080

次に、起動が成功したことを示す次の出力が表示されます。

2023-02-14T14:05:04.417Z	INFO	server/server.go:206	-----Config BEGIN-----
2023-02-14T14:05:04.420Z	INFO	server/server.go:207	mode=prod
2023-02-14T14:05:04.420Z	INFO	server/server.go:208	dataDir=/var/opt/bytebase
2023-02-14T14:05:04.420Z	INFO	server/server.go:209	resourceDir=/var/opt/bytebase/resources
2023-02-14T14:05:04.420Z	INFO	server/server.go:210	externalURL=https://www.bytebase.com/docs/get-started/install/external-url
2023-02-14T14:05:04.420Z	INFO	server/server.go:211	readonly=false
2023-02-14T14:05:04.420Z	INFO	server/server.go:212	debug=false
2023-02-14T14:05:04.421Z	INFO	server/server.go:213	demoName=
2023-02-14T14:05:04.421Z	INFO	server/server.go:214	backupStorageBackend=LOCAL
2023-02-14T14:05:04.421Z	INFO	server/server.go:215	backupBucket=
2023-02-14T14:05:04.421Z	INFO	server/server.go:216	backupRegion=
2023-02-14T14:05:04.421Z	INFO	server/server.go:217	backupCredentialFile=
2023-02-14T14:05:04.421Z	INFO	server/server.go:218	-----Config END-------
2023-02-14T14:05:04.558Z	INFO	server/server.go:248	-----Sample Postgres Instance BEGIN-----
2023-02-14T14:05:04.559Z	INFO	server/server.go:250	sampleDatabasePort=8083
2023-02-14T14:05:04.559Z	INFO	server/server.go:251	sampleDataDir=/var/opt/bytebase/pgdata-sample
2023-02-14T14:05:05.501Z	INFO	server/server.go:255	-----Sample Postgres Instance END-----
2023-02-14T14:05:05.502Z	INFO	server/server.go:260	-----Embedded Postgres Config BEGIN-----
2023-02-14T14:05:05.502Z	INFO	server/server.go:261	datastorePort=8082
2023-02-14T14:05:05.502Z	INFO	server/server.go:262	pgDataDir=/var/opt/bytebase/pgdata
2023-02-14T14:05:05.502Z	INFO	server/server.go:263	-----Embedded Postgres Config END-----
a2023-02-14T14:05:06.808Z	INFO	store/pg_engine.go:302	Apply database migration if needed...
2023-02-14T14:05:06.809Z	INFO	store/pg_engine.go:306	Current schema version before migration: 1.12.6
2023-02-14T14:05:06.811Z	INFO	store/pg_engine.go:318	The prod cutoff schema version: 1.12.6
2023-02-14T14:05:06.811Z	INFO	store/pg_engine.go:392	Skip migration 1.0.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.1.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.2.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.3.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.4.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.5.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.6.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.7.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.8.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.9.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.10.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.812Z	INFO	store/pg_engine.go:392	Skip migration 1.11.0; the current schema version 1.12.0 is higher.
2023-02-14T14:05:06.813Z	INFO	store/pg_engine.go:396	Starting minor version migration cycle from 1.12.0 ...
2023-02-14T14:05:06.813Z	INFO	store/pg_engine.go:444	Database schema is at version 1.12.6; nothing to migrate.
2023-02-14T14:05:06.896Z	INFO	store/pg_engine.go:157	Current schema version after migration: 1.12.6

██████╗ ██╗   ██╗████████╗███████╗██████╗  █████╗ ███████╗███████╗
██╔══██╗╚██╗ ██╔╝╚══██╔══╝██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝
██████╔╝ ╚████╔╝    ██║   █████╗  ██████╔╝███████║███████╗█████╗
██╔══██╗  ╚██╔╝     ██║   ██╔══╝  ██╔══██╗██╔══██║╚════██║██╔══╝
██████╔╝   ██║      ██║   ███████╗██████╔╝██║  ██║███████║███████╗
╚═════╝    ╚═╝      ╚═╝   ╚══════╝╚═════╝ ╚═╝  ╚═╝╚══════╝╚══════╝

Version 1.12.0 (schema version 1.12.6) has started on port 8080

************* External Visiting URL (--external-url) *************

!!! You have not set --external-url. If you want to make Bytebase
!!! externally accessible, follow:

https://www.bytebase.com/docs/get-started/install/external-url

******************************************************************
___________________________________________________________________________________________

2. レジストラ

Docker が正常に起動したら、ローカル ブラウザで http://localhost:5678 を開き、Bytebase のメイン ページを開きます。初めて開くと、管理者登録ページが表示されます。
ここに画像の説明を挿入

該当する場所にメールアドレスとログインパスワードを入力し、「登録」をクリックします。登録が成功すると、ログイン後に自動的にコンソール ページにジャンプします。
ここに画像の説明を挿入

3. インスタンスを追加する

「インスタンスの追加」ボタンをクリックします。

ここに画像の説明を挿入

インスタンスの作成ダイアログが表示されます。

ここに画像の説明を挿入

[インスタンスの作成] ダイアログ ボックスに ClickHouse のドメイン名/IP とポートを入力し、[接続のテスト] をクリックすると、右下隅に成功のプロンプトが表示されます。この時点で、「作成」をクリックしてインスタンスの作成を完了します。ここの ClickHouse は私がローカルで開始したものです。便宜上、公式は Bytebase と ClickHouse をワンクリックで開始するための対応する docker-compose.yml も提供しています。 ClickHouse と、 ClickHouse のclickhouse-cluster-quickstart.docker-compose.ymlの接続されたクラスター バージョン

ClickHouse もローカルにデプロイされている場合は、ローカル ドメイン名として host.docker.internal を使用する必要があります。ローカル ドメイン名として localhost を使用すると、Bytebase は次の警告を表示します。连接到实例失败。 如果您使用的 Docker 部署,请尝试使用 "host.docker.internal" 作为 Host 地址

4. プロジェクトを作成する

インスタンスが作成されたら、メニュー バーの [プロジェクト] -> [プロジェクトの作成] をクリックすると、次のダイアログ ボックスが表示されます。

ここに画像の説明を挿入

プロジェクトに「ClickHouse Project」という名前を付け、「作成」をクリックする必要があります。

5. データベースを作成する

プロジェクトを作成したら、プロジェクト内にデータベースを作成し、「データベースの作成」をクリックします。

ここに画像の説明を挿入

[データベースの作成] ダイアログ ボックスでデータ名 mydb を追加し、クラスターを記入します。ここでのクラスターは、ClickHouse 独自のもの、つまり ClickHouse のクラスターの概念です。ClickHouse の実際の構成に応じて記入する必要があります。をクリックし、環境を選択します。これは、上記でインスタンスを作成するときに [テスト] を選択した場合は、ここでも [テスト] を選択する必要があります。そうすると、作成したばかりの ClickHouse インスタンスが下のインスタンス ドロップダウン ボックスに表示されます。最後に「作成」をクリックします。

注: ClickHouse クラスターのスタンドアロン バージョンを使用している場合は、入力する必要はなく、空白のままにしておきます。上記の入力方法に従うと、次のようなエラーが報告されます。

ここに画像の説明を挿入

クラスターで実行されたデフォルトが存在しないことを示すプロンプトが表示されます。

したがって、クラスタの作成が成功した後は、次のようにクラスタ入力ボックスを空白のままにすることができます。

ここに画像の説明を挿入

左側のテスト環境で、ClickHouse プロジェクトと db という名前のデータベースが正常に作成されたことがわかります。

6. テーブルの作成

新しく作成したデータベースのテーブルを作成するには、[データベース] メニューの [スキーマの変更] をクリックします。
ここに画像の説明を挿入

[スキーマの変更] をクリックすると、次のようなデータベース選択ダイアログ ボックスが表示されます。
ここに画像の説明を挿入

上で作成したデータ データベースを選択すると、テーブル作成ページが表示されます。
ここに画像の説明を挿入

SQL 入力ボックスにテーブル作成ステートメントを入力します。

create table tb
(
  id UInt32,
  name String
) engine MergeTree()
order by id

ステートメントを入力すると、Bytebase はユーザーが SQL を完了できるようにプロンプ​​ト ボックスをポップアップ表示しますが、ClickHouse の SQL 構文は標準 SQL ではないため、一部のデータ タイプとテーブル エンジン タイプではまだ正しくプロンプトを表示できません。

最後に「作成」をクリックすると、成功したページは次のようになります。
ここに画像の説明を挿入

Bytebase でのテーブルの作成と変更は、変更操作として分類されます。SQL の実行後、右上隅に解決ボタンがあることがわかります。解決をクリックすると、プロンプト ボックスが表示され、いくつかの入力に使用できます。備考。この時点で、テーブルの作成または変更操作は完了したとみなされます。

7. 変更履歴の表示

変更履歴を表示し、データベース メニューをクリックして、表示するデータベースを選択することで、インスタンス上のすべての操作を表示できます。
ここに画像の説明を挿入

8. SQLの実行

Bytebase は、わかりやすい SQL 実行ページも提供します。

ここに画像の説明を挿入

このページではSQL文を実行することができます 上図のようなinsert文を実行したい場合は管理者権限が必要です 上図は管理者権限のビューです 一般ユーザーはselectのみ実行可能です 一般ユーザーのビューユーザーは次のとおりです。

ここに画像の説明を挿入

ここまで Bytebase の基本的な機能を紹介しましたが、実際には Bytebase にはまだ多くの機能や詳細な設計が必要です。

おすすめ

転載: blog.csdn.net/weixin_39992480/article/details/129035441