オープンソースのクラウドネイティブでリアルタイム分析を行う最新のデータ ウェアハウスである DataBend の紹介と、他のオープンソース ファイル ストレージと組み合わせたその使用例

DataBend の概要

Databend は、効率的なデータ ストレージと処理機能を提供するように設計された、オープン ソース、クラウド ネイティブ、リアルタイム分析の最新のデータ ウェアハウスです。Rust 言語で開発されており、高性能の列指向ストレージとクエリ処理のための Apache Arrow 形式をサポートしています。

主な特徴:

  1. クラウドネイティブ設計: Databend は Kubernetes 上に構築されており、柔軟なスケーリングと水平拡張機能を備えており、パブリック クラウドまたはプライベート クラウド環境に簡単に導入できます。
  2. SQL サポート: Databend には完全な SQL クエリ機能があり、MySQL プロトコルと互換性があるため、ユーザーは使い慣れた SQL 構文をデータ クエリと処理に使用できます。
  3. パフォーマンスの最適化: Databend は、ベクトル化されたクエリ実行エンジンとカラム型ストレージ テクノロジを通じて、大規模なデータ セットの高速読み取りと分析を可能にします。
  4. オブジェクト ストレージの統合: Databend は、AWS S3、Azure Blob Storage、Google Cloud Storage などのさまざまなオブジェクト ストレージ サービスにデータを保存して、低コストの大規模ストレージを実現します。
  5. リアルタイム分析: Databend は、リアルタイムのデータ取り込みと即時のクエリ応答をサポートしており、BI 分析、ログ分析、リアルタイム レポートなどのアプリケーション シナリオに適しています。
  6. コミュニティ主導: オープン ソース プロジェクトとして、Databend は開発者のアクティブなコミュニティによって維持および提供され、新機能の追加と既存の機能の改善のために継続的に反復更新されます。

使用シナリオの例:

  • データ アナリストは Databend を使用して、複雑なデータ クエリとデータ分析を実行できます。
  • 開発者は、リアルタイム データ パイプラインを構築し、ストリーミング データを Databend に書き込み、すぐにクエリと分析を行うことができます。
  • データ サイエンティストは、Databend と他のツール (Python や R など) を組み合わせて、機械学習モデルをトレーニングする前にデータの前処理を実行できます。

導入と使用の手順:

  1. Databend のソース コードまたはバイナリ パッケージをダウンロードまたはクローンします。
  2. 公式ドキュメントに従って、データベース URL、接続資格情報、オブジェクト ストレージのアクセス情報など、必要な環境変数とサービス パラメーターを構成します。
  3. Databend サービスを開始します。開始、停止、および管理操作は通常、コマンド ライン ツールを使用して完了できます。
  4. MySQL クライアントまたは MySQL プロトコルをサポートするアプリケーションを使用して Databend データベースに接続し、テーブルの作成、データの挿入、SQL クエリの実行を開始します。

Databend Cloud - Snowflake に代わるオープンソースのクラウド データ ウェアハウス | データベンドクラウド

データベンドのインストール

以下は Databend のインストールと構成の手順を簡略化したものです。具体的な詳細は実際の状況に応じて調整される可能性があります。操作については最新の公式ドキュメントを参照してください。

1. 環境の準備

Rust ツールチェーン (Rustup) と Docker がマシンにインストールされていることを確認してください。まだインストールされていない場合は、次のリンクを参照してインストールしてください。

2. データベンドをインストールする

Rust ツールチェーンを使用して Databend をコンパイルし、インストールします。

# 克隆 Databend 仓库
git clone https://github.com/datafuselabs/databend.git
cd databend

# 使用 nightly 版本的 Rust 编译器构建 Databend
rustup default nightly
cargo build --release

# 创建 Databend 的数据存储目录(例如 /var/lib/databend)
sudo mkdir -p /var/lib/databend
sudo chown $(id -u):$(id -g) /var/lib/databend

3. データベンドを構成して実行する

Databend は、スタンドアロン モードと分散モードでの展開方法を提供します。ここでは、まずスタンドアロン モードでの構成と起動について説明します。

# 运行一个单节点的 Databend 服务
./target/release/databend-server --config-path=config.toml.example

# 或者如果你想在后台运行(daemon mode),可以加上 `--log-file` 参数指定日志文件
./target/release/databend-server --config-path=config.toml.example --log-file=/var/log/databend/server.log &

上記のコマンドはconfig.toml.example サンプル構成ファイルなので、実際のニーズに応じて変更する必要があります。たとえば、リスニング アドレス、ポート、データ ディレクトリ、その他の情報を設定します。

4. データベース接続の構成

3307 デフォルトでは、Databend が開始されると、 SQL クエリ インターフェイスとしてローカル ポートでリッスンします 。MySQL プロトコルをサポートする任意のクライアントを通じて Databend に接続できます。

mysql -h localhost -P 3307 -u root

5. 永続ストレージの構成 (オプション)

データを特定の場所 (S3 や MinIO など) に永続的に保存する場合は、対応するストレージ バックエンドを構成ファイルに追加し、対応するアクセス資格情報を指定する必要があります。

6. 分散展開

実稼働環境または大規模なテストの場合、マルチノード クラスターの展開が必要になる場合があります。分散クラスターを構築するには、Databend の Kubernetes Helm Chart または Docker Compose ファイルを参照してください。

予防:

  • 運用環境では、パスワード暗号化、アクセス制御などのセキュリティ関連のオプションが正しく構成されていることを確認してください。
  • 永続ストレージをサポートするために、Databend は、AWS S3、MinIO、Google Cloud Storage などを含む (ただしこれらに限定されない) さまざまなオブジェクト ストレージ サービスを使用するように構成できます。

詳細なガイダンスとベスト プラクティスについては、Databend ドキュメントの最新バージョンを参照してください: Databend - クラウド データ分析の将来 | Databend

Docker に基づいたインストールと構成

atabend は Docker イメージを提供し、ユーザーが Docker コンテナを通じて Databend データベースを迅速にデプロイして実行できるようにします。以下は、Docker を使用して Databend をインストールするための詳細な構成手順です。

1. Databend Docker イメージをプルします

まず、Docker がインストールされていることを確認し、ターミナルで次のコマンドを実行して、最新の Databend Docker イメージをプルします。実際のイメージ名はバージョンの更新により変更される可能性があることに注意してください。最新バージョンについては公式ドキュメントを参照してください。

docker pull databend-docker:databend-query # 查询引擎(databend-query)
docker pull databend-docker:databend-meta # 元数据服务(databend-meta)

2. 永続ストレージ用のディレクトリを作成します (オプション)

コンテナーの再起動後にデータを保持するために、メタデータとサービス データを永続的に保存するためのディレクトリをローカル ホスト上に作成できます。

mkdir -p /path/to/databend/meta-data
mkdir -p /path/to/databend/query-data

3. Databend Meta サービスを実行します。

docker run -d --name databend-meta \
  -v /path/to/databend/meta-data:/var/lib/databend-meta \
  -e "DATABEND_QUERY_HTTP_PORT=8001" \
  databend-docker:databend-meta

ここで、-v パラメータはホスト上のディレクトリを /var/lib/databend-meta コンテナ内のディレクトリにマップします。

4. データベンド クエリ エンジンを実行します。

docker run -d --name databend-query \
  --link databend-meta:databend-meta \
  -v /path/to/databend/query-data:/var/lib/databend-query \
  -p 8080:8080 \
  databend-docker:databend-query

ここの パラメーター--link は、クエリ エンジンとメタデータ サービス コンテナーを接続するために使用され、クエリ エンジンがメタデータ サービスにアクセスできるようになります。同時に、 -p パラメーターはクエリ エンジンの HTTP ポートをホストにマップするために使用されます。

5. 環境変数の構成 (オプション)

必要に応じて、他の環境変数を設定して、ログ レベル、リスニング アドレスなどのデータベースの動作を構成できます。使用可能な環境変数のリストについては、Databend のドキュメントを参照してください。

6. Databend にアクセスしてテストする

コンテナーを起動した後、次の方法で Databend クエリ エンジンにアクセスできます。

  • HTTP API : ブラウザまたは Postman でアクセスします http://localhost:8080/ (ローカル ポートがマップされている場合)。
  • SQL クライアント: MySQL Workbench などの MySQL クライアント ツールやコマンド ライン ツールを介して Databend に接続します。ポートは通常 です 3307。ユーザー名とパスワードには、特定のドキュメントまたは環境変数構成の表示が必要な場合があります。

特定のパラメータや設定は時間の経過とともに変更される可能性があるため、常に最新の公式ドキュメントを参照してください。上記の例は、想定されるデフォルト構成に基づいて示されています。

Centos 9 でのインストールと使用

CentOS 9 システムに Databend をインストールするための一般的な手順 (最新の公式ドキュメントに従う):

1. 環境の準備ができていることを確認する

  • CentOS 9 システムには、必要な開発ツールと依存ライブラリがすでにインストールされています。
  • Rust プログラミング言語環境がインストールされています。
# 更新系统并安装必要软件包
sudo dnf update -y
sudo dnf install -y curl git make gcc-c++ zlib-devel openssl-devel

# 安装Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

2. データベンドをインストールする

  • Rust の Cargo を使用して、Databend のサーバー部分 (metasrv および databend-query) を構築してインストールします。
# 克隆Databend源代码
git clone https://github.com/datafuselabs/databend.git
cd databend

# 构建并安装
cargo build --release --bin metasrv
cargo build --release --bin databend-query

# 创建用于存放运行时数据的目录
mkdir -p /var/lib/databend/meta /var/lib/databend/data

3. サービスを設定して開始する

  • Databend のメタデータ ストレージ、ログ パス、その他のパラメーターを構成し、サービスを開始します。
# 编写配置文件(这里仅提供示例配置)
cat << EOF > /etc/databend/config.toml
[meta_service]
listen = "127.0.0.1:9191"
data_dir = "/var/lib/databend/meta"

[databend_query]
http_server_address = "0.0.0.0:8000"
query_pool_size = 4
local_data_path = "/var/lib/databend/data"
EOF

# 启动metasrv服务
./target/release/metasrv --config /etc/databend/config.toml &

# 启动databend-query服务
./target/release/databend-query --config /etc/databend/config.toml &

4. インストールの確認

  • ローカルまたはネットワーク経由で Databend Query API ポートに接続して確認します。
# 如果是在本地机器上安装,可以尝试执行一个简单的查询
curl -G "http://localhost:8000/v1/query" --data-urlencode 'sql=SELECT version()' 

# 应该返回类似如下信息:
{"results":[{"meta":{"columns":[{"name":"version","type":5}],"rows":[["nightly"]]},"stats":{"elapsed_time":...}}]}

予防:

  • 実際の展開では、適切なディスク パーティションのマウントやクラウド ストレージ サービスの使用など、Databend 用の永続ストレージのセットアップが必要になる場合があります。
  • 運用環境では、ナイトリー バージョンではなく安定バージョンを必ず使用し、公式に推奨されているベスト プラクティスに従って構成および管理してください。
  • Databend では、Docker コンテナを介したデプロイメントもサポートされており、実稼働デプロイメントの場合は、Docker Compose または Kubernetes を使用する方が便利で、保守が容易です。

詳しいインストール手順については、常に最新バージョンの Databend 公式ドキュメントを参照してください: https://docs.databend.rs/

Databend、lakeFS、MinIO の組み合わせ

高性能でスケーラブルな分散オブジェクト ストレージ システム MinIO の紹介、導入手順、およびコード例 - CSDN ブログ

 

Databend、lakeFS、MinIOの機能紹介:

  1. データベンド

    • Databend は、Rust 上に構築され、Apache Arrow 形式と互換性のあるオープンソースのリアルタイム分析データ ウェアハウスです。
    • Snowflake に似たクラウドネイティブ アーキテクチャを提供し、同時実行性の高いクエリとほぼリアルタイムのデータ挿入と更新をサポートします。
    • SQL クエリ言語をサポートし、PB レベルのデータを処理して、1 秒未満の遅延でインタラクティブな分析エクスペリエンスを提供できます。
    • 複数のデータソースを統合し、JDBC/ODBCを介してさまざまなBIツールと接続してデータ分析を行うことができます。
  2. レイクFS

    • lakeFS は、Git のようなブランチ モデルに基づくオブジェクト ストレージ管理ツールで、AWS S3 またはその他の S3 互換ストレージ サービス (MinIO など) に適しています。
    • データ レイクのバージョン管理機能を提供し、ユーザーがオブジェクト ストレージに保存されたデータ セットに対してブランチ、マージ、ロールバック、その他の操作を作成できるようにします。
    • ユーザーは、データの開発、テスト、実稼働プロセスをさまざまなブランチで実行できるため、データ資産管理機能が強化され、データ パイプラインのガバナンスと監査が簡素化されます。
  3. MinIO :

    • MinIO は、Amazon S3 API と完全な互換性を備えた高性能の分散オブジェクト ストレージ システムです。
    • ビッグデータ分析に必要な生データ、バックアップおよびアーカイブデータを含む大規模な非構造化データストレージとして、ローカルまたはクラウドに導入できます。
    • 高可用性、拡張性、セキュリティを提供し、企業内またはハイブリッド クラウド環境でのオブジェクト ストレージ ソリューションとしての使用に適しています。

3 つを組み合わせる方法と例:

MinIO を基盤となるストレージとして使用し、lakeFS を使用してバージョン管理とそのデータのブランチ操作を実行し、Databend を使用してデータのクエリと分析を行うとします。一般的な構成手順と使用方法は次のとおりです。

設定手順:

  1. MinIO をデプロイします

    • MinIO をサーバー クラスターまたは単一マシンにインストールして起動し、ネットワークにアクセス可能であり、適切なアクセスと秘密キーが構成されていることを確認します。
  2. LakeFS を構成する

    • lakectl init <lakefs-server-url> my-repo s3://<minio-bucket-name>
  3. データを LakeFS にアップロードする

    • lakectl cp local-data.csv lakefs://my-repo/main/data.csv
      lakectl branch create my-repo/dev --parent main
      lakectl cp local-data-dev.csv lakefs://my-repo/dev/data.csv
  4. データベンド データ ソースを構成します

    • Databend で S3 データ ソースを LakeFS のブランチの 1 つ (メイン ブランチなど) を指すように設定し、Databend がこのブランチの下のデータを分析のために読み取ることができるようにします。
    • Databend のカタログ構成ファイルを更新し、S3 ストレージ接続情報を追加し、バケット名 (ここでは lakeFS によって仮想化されたバケットになります) と正しいエンドポイント URL (lakeFS サーバー アドレス) を指定します。
  5. データベンドでクエリを実行する

    • SELECT * FROM "s3://my-repo/main/data.csv" (format CSV);

シナリオ例:

  • データ開発段階:

    • 開発チームのメンバーは、データのクリーニングや変換などの操作を LakeFS 上の dev ブランチで実行し、完了後に変更を送信します。
  • コードレビューとマージ

    • LakeFS のマージ機能を使用して、dev ブランチから main ブランチに変更をマージします。
  • データの検証と分析:

    • データ アナリストは、Databend のデータ ソースとしてメイン ブランチを選択し、SQL クエリを実行してデータの品質と分析結果を検証します。
  • トラブルシューティングとロールバック:

    • メイン ブランチ データに問題が見つかった場合は、LakeFS を通じて特定のバージョンにロールバックし、修復後にメイン ブランチにマージできます。Databend はクエリと分析用に最新バージョンのデータを自動的に取得します。

実際の統合には、それぞれの公式ドキュメントに従ってパラメータを詳細に設定する必要があり、コンポーネント間のシームレスな接続を確保するために追加のアダプテーション レイヤーまたはミドルウェアが必要になる場合があることに注意してください。インターフェイスはプロジェクト間で変更される可能性があるため、最新のドキュメントやガイドを確認してください。

 

おすすめ

転載: blog.csdn.net/zrc_xiaoguo/article/details/135438964