データベンドはローカル モードで動作します

現在、開発者は Databend を試す必要があり、Databend Cloud を使用するか、公式ドキュメントに従って Databend サービスをデプロイするかを選択できます。Databend アーキテクチャには 3 つの層があるため、Databend サービスを展開するには、通常databend-query3 つのdatabend-metaプロセスを開始しminio、ポートなどの構成項目を変更する必要があり、そのプロセスは少し複雑です。Databend をすぐに試すためのより速い方法はありますか?

Python バインディング

簡単な方法は、Python で Databend を実行することです。Rust の優れたエコロジーを使用して、pyo3 ライブラリに基づいた Python バインディングをリリースしました。Databend は、ローカル juypter や colab などのオンライン サービスで使用できます。

# pip install databend
from databend import SessionContext

ctx = SessionContext()

df = ctx.sql("select number, number + 1, number::String as number_p_1 from numbers(8)")

# convert to pyarrow
df.to_py_arrow()

# convert to pandas
df.to_pandas()

データベンドローカルモード

clickhouse-localなどの組み込みデータベースの利点を利用してduckdb、Databend でローカル モードを有効にすることもできます。

localスキーマは Databend の簡略化されたバージョンであり、ユーザーは Databend サービスをデプロイしなくても、SQL を使用してコマンドで Databend と対話できます。その利点は、開発とインストールが簡素化され、開発者が SQL を使用して Databend でサポートされる関数を使用して簡単なデータ処理を実行できることです。運用環境で Databend を使用する必要がある場合は、公式 Web サイトで推奨されているように Databend サービスまたは Databend Cloud をデプロイすることをお勧めしますが、開発者またはテスト エンジニアの場合は、このモードを使用して Databend を操作できますlocal

localこのモードでは、一時的なデータベンド クエリ プロセスが開始されます。このプロセスはクライアントとサーバーを結合し、そのストレージは一時ディレクトリにあります。ライフ サイクルはプロセスに従います。プロセスが終了すると、リソースも破棄されます。複数のプロセスを開始するとlocal、それらのリソースは互いに分離されます。

local各例は、このモードで実現できる機能を紹介する短い数行のコマンドです。

これを行う前に、databend-query バイナリをダウンロードし、そのバイナリを PATH 環境変数に入れて、bend-localツール エイリアスを埋め込む必要があります。

alias bend-local="databend-query local"
  • コマンドライン対話型 (REPL) モード

    • ターミナルに bend-local コマンドを直接入力した後、duckdb cli ツールと同様に、クライアントとサーバーを組み合わせる REPL モードに入ります。
    • ❯ bend-local
      Welcome to Databend, version v1.2.4-nightly-326cabe38056168dd261f744609ea85319f02686(rust-1.72.0-nightly-2023-09-02T15:18:48.006847567Z).
      
      databend-local:) select max(a) from range(1,1000) t(a);
      ┌────────────┐
      │   max(a)   │
      │ Int64 NULL │
      ├────────────┤
      │ 999        │
      └────────────┘
      1 row result in 0.036 sec. Processed 999 rows, 999 B (27.89 thousand rows/s, 217.90 KiB/s)
      
      databend-local:)
      
    • bend-local は、パーソナライズされたクライアント構成を行うための構成ファイルをサポートしていることは注目に値します~/.config/databend/config.toml。構成ファイルの形式は、bendsqlと互換性があります。

<!---->

  • 1 行のコマンドで寄木細工ファイルが生成されます

    • クエリ SQL と出力形式で渡す --query、--output-format パラメータをサポート
    •  bend-local --query "select number, number + 1 as b from numbers(10)" --output-format parquet > /tmp/a.parquet
      
  • シェル パイプ モードはデータを分析し、$STDIN マクロは stdin ストリームを一時ステージ テーブルとして解析します。

    • ❯ echo '3,4' | bend-local -q "select $1 a, $2 b  from $STDIN  (file_format => 'csv') " --output-format table
      
      SELECT $1 AS a, $2 AS b FROM 'fs:///dev/fd/0' (FILE_FORMAT => 'csv')
      
      ┌─────────────────┐
      │    a   │    b   │
      │ String │ String │
      ├────────┼────────┤
      │ '3'    │ '4'    │
      └─────────────────┘
      

上記の SQL では、シェル内でシェルをエスケープするために $ を使用していることに注意してください。

  • ステージ テーブルの読み取り (ローカル ファイル、外部 S3 など)

    • ❯ bend-local --query "select count() from 'fs:///tmp/a.parquet'  (file_format => 'parquet') "
      10
      
      ❯ bend-local --query "select count() from 'https://datafuse-1253727613.cos.ap-hongkong.myqcloud.com/data/books.parquet'  (file_format => 'parquet') "
      2
      
      ❯ bend-local --query "select $1, $2 from 'http://www.geoplugin.net/csv.gp?ip=3.3.3.3'  (file_format => 'csv') "
      
  • システムプロセスを分析して、各ユーザーが占有しているメモリを確認します。

    • ❯ ps aux | tail -n +2 | awk '{ printf("%s\t%s\n", $1, $4) }' | bend-local -q "select  $1 as user,  sum($2::double) as memory  from $STDIN  (file_format => 'tsv')  group by user  "
      sundy   9.100000000000001
      root    1.2
      dbus    0.0
      
    •   
  • データ クリーニング、ある形式を他の形式に変換 (csv、tsv、parquet、ndjson などをサポート)

    • ❯ bend-local -q 'select rand() as a, rand() as b from numbers(100)' > /tmp/a.tsv
      
      
      ❯ cat /tmp/a.tsv | bend-local -q "select $1 a, $2 b  from $STDIN  (file_format => 'tsv') " --output-format parquet > /tmp/a.parquet
      
  • 他にも興味深い分析例が皆さんの探索を待っています。

Bunが正式バージョン1.0をリリース、 JavaScriptがZigによって書かれたランタイム時の Windowsファイルエクスプローラーの魔法のバグ、1秒でパフォーマンスが向上 JetBrainsがRust IDEをリリース:RustRover PHPの最新統計:市場シェアは70%を超え、CMSの王様が Pythonプログラムを移植Mojo、パフォーマンスは 250 倍向上し、C よりも高速です 。.NET 8 のパフォーマンスは大幅に向上し、.NET 7 をはるかに上回っています。 JS の 3 つの主要なランタイム: Deno、Bun、Node.js の比較 Visual Studio Code 1.82 NetEase Fuxi は従業員の「バグのため人事に脅されて亡くなった」に応じました。 Unity エンジンは来年からゲームのインストール数に応じて課金されるようになります (ランタイム料金)。
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/5489811/blog/10110289