すべての開発者が強力で使い慣れた SQL を使用して実稼働グレードの GenAI アプリケーションを構築できるようにします。
MyScaleDB は、開発者が使い慣れた SQL を使用して実稼働対応でスケーラブルな AI アプリケーションを構築できるようにする SQL ベクトル データベースです。 ClickHouse上に構築され、AI アプリケーションおよびソリューション用に最適化されているため、開発者は大量のデータを効果的に管理および処理できます。
MyScaleDB を使用する主な利点は次のとおりです。
SQL と完全互換
高速、強力、効率的なベクトル検索、フィルター検索、SQL ベクトル結合クエリ。
SQL とベクトル関連関数を使用して、MyScaleDB と対話します。複雑な新しいツールやフレームワークを学ぶ必要はありません。自分が知っているお気に入りのものを使い続けてください。
本番環境に対応した AI アプリケーション
構造化データ、テキスト、ベクター、JSON、地理空間、時系列データなどを管理および処理するための、実績のある統合プラットフォーム。サポートされているデータ型と関数を参照してください。
ベクトルと豊富なメタデータを組み合わせ、全文検索を行い、任意の比率で高精度かつ高効率のフィルター検索を実行することで、RAG の精度が向上しました1 。
比類のないパフォーマンスと拡張性
MyScaleDB は、最先端の OLAP データベース アーキテクチャと高度なベクトル アルゴリズムを活用して、超高速のベクトル操作を実現します。
データの増加に応じて、アプリケーションを簡単かつコスト効率よく拡張できます。
MyScale Cloud は、10 億規模のデータに対するプレミアム機能を備えたフルマネージド MyScaleDB を提供します2 。カスタム API を使用する特殊なベクトル データベースと比較して、MyScale はより強力で、パフォーマンスが高く、コスト効率が高く、さらに使いやすいです。このため、プログラマーの大規模なコミュニティに適しています。さらに、pgvector を使用した PostgreSQL やベクター拡張機能を使用した ElasticSearch などの統合ベクター データベースと比較すると、MyScale は消費リソースが少なく、フィルター検索などの構造化されたベクトル結合クエリの精度と速度が向上します。
SQL と完全互換
統合された構造化およびベクトル化されたデータ管理
10億規模のベクトルのミリ秒検索
信頼性が高く、直線的に拡張可能
強力なテキスト検索およびテキスト/ベクトルハイブリッド検索機能
複雑な SQL ベクトル クエリ
MyScale Telemetry による LLM 可観測性
MyScale は、SQL データベース/データ ウェアハウス、ベクトル データベース、および全文検索エンジンの 3 つのシステムを、非常に効率的な方法で 1 つのシステムに統合します。インフラストラクチャとメンテナンスのコストを節約するだけでなく、共同のデータクエリと分析も可能になります。
MyScale の独自の機能と利点の詳細については、ドキュメントとブログを参照してください。当社のオープンソース ベンチマークでは、他のベクター データベース製品との詳細な比較が提供されます。
ClickHouse は、高度な圧縮、スキップ インデックス、SIMD 処理を備えた列指向ストレージにより、ビッグ データの処理と分析に優れた人気のオープンソース分析データベースです。トランザクション処理に行ストレージと主要な最適化を使用する PostgreSQL や MySQL などのトランザクション データベースとは異なり、ClickHouse は分析速度とデータ スキャン速度が大幅に高速です。
構造化検索とベクトル検索を組み合わせる際の重要な操作の 1 つはフィルター検索です。これには、最初に他の属性によるフィルター処理が含まれ、次に残りのデータに対してベクトル検索が実行されます。カラムナ型ストレージと事前フィルタリングは、フィルター検索で高精度と高性能を確保するために重要です。そのため、ClickHouse 上に MyScaleDB を構築することを選択しました。
高速かつコスト効率の高い SQL ベクトル クエリを実現するために、ClickHouse の実行およびストレージ エンジンをさまざまな方法で変更しましたが、一般的な SQL 処理に関連する機能 (#37893、#38048、#37859、#56728、#58223) の多くは変更されています。 ClickHouse オープンソース コミュニティに貢献しました。
MyScaleDB を使用する最も簡単な方法は、MyScale Cloud サービス上にインスタンスを作成することです。 5M 768D ベクターをサポートする無料のポッドから開始できます。ここでサインアップし、MyScaleDB QuickStart で詳細な手順を確認してください。
MyScaleDB インスタンスをすぐに起動して実行するには、最新の Docker イメージをプルして実行するだけです。
docker run --name myscaledb --net=host myscale/myscaledb:1.8.0
注: Myscale のデフォルト設定では、localhost の IP アクセスのみが許可されます。 docker run 起動方法の場合、現在のノードに docker モードでデプロイされたサービスにアクセスするには、
--net=host
指定する必要があります。
これにより、デフォルトのユーザーdefault
でパスワードなしで MyScaleDB インスタンスが起動します。その後、 clickhouse-client
使用してデータベースに接続できます。
docker exec -it myscaledb clickhouse-client
次の推奨ディレクトリ構造とdocker-compose.yaml
ファイルの場所を使用してください。
> ツリー myscaledb myscaledb §── docker-compose.yaml └── 巻 ━── 設定 └── users.d ━──custom_users_config.xml 3 つのディレクトリ、2 つのファイル
デプロイメントの構成を定義します。 docker-compose.yaml
ファイルで次の構成から始めることをお勧めします。これは、特定の要件に基づいて調整できます。
バージョン: '3.7'サービス: myscaledb:image: myscale/myscaledb:1.8.0tty: trueports: - '8123:8123' - '9000:9000' - '8998:8998' - '9363:9363' - '9116:9116'ネットワーク: myscaledb_network:ipv4_address: 10.0.0.2ボリューム: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/data:/var/lib/clickhouse - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/log:/var/log/clickhouse-server - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config/users.d/custom_users_config.xml:/etc/clickhouse-server/users.d/custom_users_config.xmldeploy: resource:limits: cpus: "16.00" メモリ: 32Gbnetworks: myscaledb_network:ドライバー: ブリッジipam: ドライバー: デフォルト設定: - サブネット: 10.0.0.0/24
custom_users_config.xml
:
<クリックハウス> <ユーザー> <デフォルト> <パスワード></パスワード> <ネットワーク> <ip>::1</ip> <ip>127.0.0.1</ip> <ip>10.0.0.0/24</ip> </ネットワーク> <プロファイル>デフォルト</プロファイル> <quota>デフォルト</quota> <access_management>1</access_management> </デフォルト> </ユーザー> </クリックハウス>
注:custom_users_config 構成を使用すると、デフォルト ユーザーを使用して、docker compose を使用してデータベース サービスがデプロイされているノード上のデータベースにアクセスできます。他のノード上のデータベース サービスにアクセスする場合は、他の IP を介してアクセスできるユーザーを作成することをお勧めします。詳細な設定については、「MyScaleDB ユーザーの作成」を参照してください。 MyScaleDB の構成ファイルをカスタマイズすることもできます。
/etc/clickhouse-server
ディレクトリをmyscaledb
コンテナからローカル ドライブにコピーし、構成を変更し、ディレクトリ マッピングをdocker-compose.yaml
ファイルに追加して、構成を有効にします。- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config:/etc/clickhouse-server
次のコマンドを使用して実行します。
cd myscaledb ドッカー構成 -d
次のコマンドを使用して、MyScaleDB コマンド ライン インターフェイスにアクセスします。
docker exec -it myscaledb-myscaledb-1 clickhouse-client
これで SQL ステートメントを実行できるようになりました。 「SQL クエリの実行」を参照してください。
サポートされるビルド環境は、LLVM 15.0.7 を備えた Ubuntu 22.04 です。
スクリプトフォルダーを参照してください。
使用例:
LLVM_VERSION=15 sudo -E bash スクリプト/install_deps.sh sudo apt-get -y インストール Rustc カーゴ yasm bash スクリプト/config_on_linux.sh bash スクリプト/build_on_linux.sh
結果の実行可能ファイルはMyScaleDB/build/programs/*
にあります。
ベクトル インデックスを使用して SQL テーブルを作成し、ベクトル検索を実行する方法については、ベクトル検索のドキュメントを参照してください。オープン ソースの MyScaleDB でベクトル インデックスを作成する場合は、 TYPE SCANN
を指定することをお勧めします。
-- 長さ 384 の body_vector を持つテーブルを作成しますCREATE TABLE default.wiki_abstract (`id` UInt64,`body` String,`title` String,`url` String,`body_vector` Array(Float32),CONSTRAINT check_length CHECK length(body_vector) = 384) ENGINE = MergeTreeORDER BY ID;
-- S3INSERT INTOdefault.wiki_abstract の寄木細工ファイルからデータを挿入します。 SELECT * FROM s3('https://myscale-datasets.s3.ap-southeast-1.amazonaws.com/wiki_abstract_with_vector.parquet','Parquet');
-- body_vectorALTER TABLE にコサイン メトリックを使用して SCANN ベクトル インデックスを構築します。インデックスの進行状況は `Built`SELECT * FROM system.vector_indices; になります。
-- ベクトル検索を実行して上位 5 件の結果を返すSELECT ID、 タイトル、 distance(body_vector, [-0.052, -0.0146, -0.0677, -0.0256, -0.0395, -0.0381, -0.025, 0.0911, -0.0429, -0.0592, 0.0017, -0.0358, -0.0464, -0.0189、-0.0192、0.0544、-0.0022、-0.0292、-0.0474、-0.0286、0.0746、-0.013、-0.0217、-0.0246、-0.0169、0.0495、-0.0947、 0.0139、0.0445、-0.0262、-0.0049、0.0506、0.004、0.0276、0.0063、-0.0643、0.0059、-0.0229、-0.0315、0.0549、0.1427、 0.0079、0.011、-0.0036、-0.0617、0.0155、-0.0607、0.0258、-0.0205、0.0008、-0.0547、0.0329、-0.0522、-0.0347、0.0921、 0.0139、-0.013、0.0716、-0.0165、0.0257、-0.0071、0.0084、-0.0653、0.0091、0.0544、-0.0192、-0.0169、-0.0017、-0.0304、 0.0427、-0.0389、0.0921、-0.0622、-0.0196、0.0025、0.0214、0.0259、-0.0493、-0.0211、-0.119、-0.0736、-0.1545、-0.0578、 -0.0145、0.0138、0.0478、-0.0451、-0.0332、0.0799、0.0001、-0.0737、0.0427、0.0517、0.0102、0.0386、0.0233、0.0425、 -0.0279、-0.0529、0.0744、-0.0305、-0.026、0.1229、-0.002、0.0038、-0.0491、0.0352、0.0027、-0.056、-0.1044、0.123、-0.0184、 0.1148、-0.0189、0.0412、-0.0347、-0.0569、-0.0119、0.0098、-0.0016、0.0451、0.0273、0.0436、0.0082、0.0166、-0.0989、 0.0747、-0.0、0.0306、-0.0717、-0.007、0.0665、0.0452、0.0123、-0.0238、0.0512、-0.0116、0.0517、0.0288、-0.0013、0.0176、 0.0762、0.1284、-0.031、0.0891、-0.0286、0.0132、0.003、0.0433、0.0102、-0.0209、-0.0459、-0.0312、-0.0387、0.0201、-0.027、 0.0243、0.0713、0.0359、-0.0674、-0.0747、-0.0147、0.0489、-0.0092、-0.018、0.0236、0.0372、-0.0071、-0.0513、-0.0396、 -0.0316、-0.0297、-0.0385、-0.062、0.0465、0.0539、-0.033、0.0643、0.061、0.0062、0.0245、0.0868、0.0523、-0.0253、0.0157、 0.0266、0.0124、0.1382、-0.0107、0.0835、-0.1057、-0.0188、-0.0786、0.057、0.0707、-0.0185、0.0708、0.0189、-0.0374、 -0.0484、0.0089、0.0247、0.0255、-0.0118、0.0739、0.0114、-0.0448、-0.016、-0.0836、0.0107、0.0067、-0.0535、-0.0186、 -0.0042、0.0582、-0.0731、-0.0593、0.0299、0.0004、-0.0299、0.0128、-0.0549、0.0493、0.0、-0.0419、0.0549、-0.0315、0.1012、 0.0459、-0.0628、0.0417、-0.0153、0.0471、-0.0301、-0.0615、0.0137、-0.0219、0.0735、0.083、0.0114、-0.0326、-0.0272、 0.0642、-0.0203、0.0557、-0.0579、0.0883、0.0719、0.0007、0.0598、-0.0431、-0.0189、-0.0593、-0.0334、0.02、-0.0371、-0.0441、 0.0407、-0.0805、0.0058、0.1039、0.0534、0.0495、-0.0325、0.0782、-0.0403、0.0108、-0.0068、-0.0525、0.0801、0.0256、 -0.0183、-0.0619、-0.0063、-0.0605、0.0377、-0.0281、-0.0097、-0.0029、-0.106、0.0465、-0.0033、-0.0308、0.0357、0.0156、 -0.0406、-0.0308、0.0013、0.0458、0.0231、0.0207、-0.0828、-0.0573、0.0298、-0.0381、0.0935、-0.0498、-0.0979、-0.1452、 0.0835、-0.0973、-0.0172、0.0003、0.09、-0.0931、-0.0252、0.008、-0.0441、-0.0938、-0.0021、0.0885、0.0088、0.0034、-0.0049、 0.0217、0.0584、-0.012、0.059、0.0146、-0.0、-0.0045、0.0663、0.0017、0.0015、0.0569、-0.0089、-0.0232、0.0065、0.0204、 -0.0253、0.1119、-0.036、0.0125、0.0531、0.0584、-0.0101、-0.0593、-0.0577、-0.0656、-0.0396、0.0525、-0.006、-0.0149、0.003、 -0.1009、-0.0281、0.0311、-0.0088、0.0441、-0.0056、0.0715、0.051、0.0219、-0.0028、0.0294、-0.0969、-0.0852、0.0304、 0.0374、0.1078、-0.0559、0.0805、-0.0464、0.0369、0.0874、-0.0251、0.0075、-0.0502、-0.0181、-0.1059、0.0111、0.0894、 0.0021、0.0838、0.0497、-0.0183、0.0246、-0.004、-0.0828、0.06、-0.1161、-0.0367、0.0475、0.0317]) AS distanceFROMdefault.wiki_abstractORDER BY distance ASCLIMIT 5;
私たちは、AI 業界の刻々と変化するニーズを満たすために、MyScaleDB の継続的な改善と進化に取り組んでいます。このエキサイティングな旅に参加して、AI データ管理の革命に参加してください。
不和
サポート
MyScaleDB の最新ニュースやアップデートを入手する
Twitter で @MyScaleDB をフォローしてください
LinkedIn で @MyScale をフォローしてください
MyScale のブログを読む
逆インデックスおよびパフォーマンスの高いキーワード/ベクトルのハイブリッド検索 (1.5 以降でサポート)
より多くのストレージ エンジンをサポートします。例: ReplacingMergeTree
(1.6 以降サポート)
MyScaleDB および MyScale Telemetry による LLM 可観測性
データ中心の LLM
MyScaleDB による自動データ サイエンス
MyScaleDB は、Apache License バージョン 2.0 に基づいてライセンスされています。ライセンス ファイルのコピーを表示します。
MyScaleDB を開発したこれらのオープンソース プロジェクトに特に感謝します。
ClickHouse - ビッグ データ用の無料分析 DBMS。
Faiss - Meta の Fundamental AI Research による、効率的な類似性検索と高密度ベクトルのクラスタリングのためのライブラリ。
hnswlib - 高速近似最近傍法のためのヘッダーのみの C++/Python ライブラリです。
ScaNN - Google Research によるスケーラブル最近傍ライブラリ。
Tantivy - Apache Lucene に触発され、Rust で書かれた全文検索エンジン ライブラリです。
RAG の精度を向上させるためにメタデータ フィルタリングが重要である理由をここでご覧ください。 ↩
MSTG (マルチスケール ツリー グラフ) アルゴリズムは MyScale Cloud を通じて提供され、ディスクベースのストレージによる高いデータ密度と、10 億規模のベクトル データに対するインデックス作成と検索のパフォーマンスの向上を実現します。 ↩