Memungkinkan setiap pengembang untuk membangun aplikasi GenAI tingkat produksi dengan SQL yang kuat dan familier.
MyScaleDB adalah database vektor SQL yang memungkinkan pengembang membangun aplikasi AI yang siap produksi dan skalabel menggunakan SQL yang sudah dikenal. Itu dibangun di atas ClickHouse dan dioptimalkan untuk aplikasi dan solusi AI, memungkinkan pengembang untuk mengelola dan memproses data dalam jumlah besar secara efektif.
Manfaat utama menggunakan MyScaleDB meliputi:
Sepenuhnya Kompatibel dengan SQL
Pencarian vektor yang cepat, kuat, dan efisien, pencarian terfilter, dan kueri penggabungan vektor SQL.
Gunakan SQL dengan fungsi terkait vektor untuk berinteraksi dengan MyScaleDB. Tidak perlu mempelajari alat atau kerangka kerja baru yang rumit – pertahankan apa yang Anda ketahui dan sukai.
Siap Produksi untuk aplikasi AI
Platform terpadu dan teruji waktu untuk mengelola dan memproses data terstruktur, teks, vektor, JSON, geospasial, data deret waktu, dan banyak lagi. Lihat tipe data dan fungsi yang didukung
Peningkatan akurasi RAG dengan menggabungkan vektor dengan metadata yang kaya, pencarian teks lengkap, dan melakukan pencarian terfilter dengan presisi tinggi dan efisiensi tinggi pada rasio apa pun 1 .
Performa dan skalabilitas yang tak tertandingi
MyScaleDB memanfaatkan arsitektur database OLAP mutakhir dan algoritma vektor canggih untuk operasi vektor secepat kilat.
Skalakan aplikasi Anda dengan mudah dan hemat biaya seiring pertumbuhan data Anda.
MyScale Cloud menyediakan MyScaleDB yang terkelola sepenuhnya dengan fitur-fitur premium pada data berskala miliaran 2 . Dibandingkan dengan database vektor khusus yang menggunakan API khusus, MyScale lebih kuat, berperforma tinggi, dan hemat biaya namun tetap lebih mudah digunakan. Hal ini membuatnya cocok untuk komunitas programmer yang besar. Selain itu, jika dibandingkan dengan database vektor terintegrasi seperti PostgreSQL dengan pgvector atau ElasticSearch dengan ekstensi vektor, MyScale menggunakan lebih sedikit sumber daya dan mencapai akurasi dan kecepatan yang lebih baik untuk kueri gabungan terstruktur dan vektor, seperti penelusuran yang difilter.
Sepenuhnya kompatibel dengan SQL
Manajemen data terstruktur dan vektorisasi terpadu
Pencarian milidetik pada vektor skala miliar
Sangat andal & dapat diskalakan secara linier
Fungsi pencarian teks dan pencarian hibrid teks/vektor yang kuat
Kueri vektor SQL yang kompleks
Observabilitas LLM dengan Telemetri MyScale
MyScale menyatukan tiga sistem: database SQL/gudang data, database vektor, serta mesin pencari teks lengkap ke dalam satu sistem dengan cara yang sangat efisien. Ini tidak hanya menghemat biaya infrastruktur dan pemeliharaan, namun juga memungkinkan kueri dan analisis data gabungan.
Lihat dokumentasi dan blog kami untuk mengetahui lebih lanjut tentang fitur dan keunggulan unik MyScale. Tolok ukur sumber terbuka kami memberikan perbandingan mendetail dengan produk basis data vektor lainnya.
ClickHouse adalah database analitik sumber terbuka populer yang unggul dalam pemrosesan dan analitik data besar karena penyimpanan kolomnya dengan kompresi tingkat lanjut, lewati pengindeksan, dan pemrosesan SIMD. Tidak seperti database transaksional seperti PostgreSQL dan MySQL, yang menggunakan penyimpanan baris dan pengoptimalan utama untuk pemrosesan transaksional, ClickHouse memiliki kecepatan analitik dan pemindaian data yang jauh lebih cepat.
Salah satu operasi utama dalam menggabungkan pencarian terstruktur dan vektor adalah pencarian terfilter, yang melibatkan pemfilteran berdasarkan atribut lain terlebih dahulu dan kemudian melakukan pencarian vektor pada data yang tersisa. Penyimpanan kolom dan pra-pemfilteran sangat penting untuk memastikan akurasi tinggi dan kinerja tinggi dalam pencarian yang difilter, itulah sebabnya kami memilih untuk membangun MyScaleDB di atas ClickHouse.
Meskipun kami telah memodifikasi mesin eksekusi dan penyimpanan ClickHouse dalam banyak cara untuk memastikan kueri vektor SQL yang cepat dan hemat biaya, banyak fitur (#37893, #38048, #37859, #56728, #58223) yang terkait dengan pemrosesan SQL umum telah dimodifikasi berkontribusi kembali ke komunitas open source ClickHouse.
Cara paling sederhana untuk menggunakan MyScaleDB adalah dengan membuat instance pada layanan MyScale Cloud. Anda bisa memulai dari pod gratis yang mendukung vektor 5M 768D. Daftar di sini dan periksa MyScaleDB QuickStart untuk instruksi lebih lanjut.
Untuk mengaktifkan dan menjalankan instance MyScaleDB dengan cepat, cukup tarik dan jalankan image Docker terbaru:
menjalankan buruh pelabuhan --name myscaledb --net=host myscale/myscaledb:1.8.0
Catatan: Konfigurasi default Myscale hanya mengizinkan akses ip localhost. Untuk metode startup docker run, Anda perlu menentukan
--net=host
untuk mengakses layanan yang diterapkan dalam mode docker pada node saat ini.
Ini akan memulai instance MyScaleDB dengan pengguna default
default dan tanpa kata sandi. Anda kemudian dapat terhubung ke database menggunakan clickhouse-client
:
docker exec -it klien clickhouse myscaledb
Gunakan struktur direktori yang direkomendasikan berikut dan lokasi file docker-compose.yaml
:
> pohon myscaledb myscaledb ├── buruh pelabuhan-compose.yaml └── volume └── konfigurasi └── pengguna.d └── custom_users_config.xml 3 direktori, 2 file
Tentukan konfigurasi untuk penerapan Anda. Kami menyarankan untuk memulai dengan konfigurasi berikut di file docker-compose.yaml
Anda, yang dapat Anda sesuaikan berdasarkan kebutuhan spesifik Anda:
versi: '3.7'layanan: myscaledb:image: myscale/myscaledb:1.8.0tty: trueports: - '8123:8123' - '9000:9000' - '8998:8998' - '9363:9363' - '9116:9116'networks: myscaledb_network:ipv4_address: 10.0.0.2volumes: - ${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: resources:limits: cpus: "16.00" memori: 32Gbnetworks: myscaledb_network: driver: bridgeipam: driver: konfigurasi default: - subnet: 10.0.0.0/24
custom_users_config.xml
:
<rumah klik> <pengguna> <standar> <kata sandi></kata sandi> <jaringan> <ip>::1</ip> <ip>127.0.0.1</ip> <ip>10.0.0.0/24</ip> </jaringan> <profil>default</profil> <kuota>default</quota> <access_management>1</access_management> </standar> </pengguna> </klik rumah>
Catatan: Konfigurasi custom_users_config memungkinkan Anda menggunakan pengguna default untuk mengakses database pada node tempat layanan database disebarkan menggunakan docker composer. Jika Anda ingin mengakses layanan database di node lain, disarankan untuk membuat pengguna yang dapat diakses melalui IP lain. Untuk pengaturan detailnya, lihat: MyScaleDB Buat Pengguna. Anda juga dapat menyesuaikan file konfigurasi MyScaleDB. Salin direktori
/etc/clickhouse-server
dari wadahmyscaledb
ke drive lokal Anda, ubah konfigurasinya, dan tambahkan pemetaan direktori ke filedocker-compose.yaml
agar konfigurasi diterapkan:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config:/etc/clickhouse-server
Gunakan perintah berikut untuk menjalankannya:
cd myscaledb buruh pelabuhan menyusun -d
Akses antarmuka baris perintah MyScaleDB menggunakan perintah berikut.
docker exec -it myscaledb-myscaledb-1 clickhouse-client
Anda sekarang dapat menjalankan pernyataan SQL. Lihat Menjalankan Kueri SQL.
Lingkungan build yang didukung adalah Ubuntu 22.04 dengan LLVM 15.0.7.
Silakan lihat folder skrip.
Contoh penggunaan:
LLVM_VERSION=15 sudo -E skrip bash/install_deps.sh sudo apt-get -y install Rustc Cargo Yasm skrip bash/config_on_linux.sh skrip bash/build_on_linux.sh
Executable yang dihasilkan akan berada di MyScaleDB/build/programs/*
.
Lihat Dokumentasi Pencarian Vektor untuk cara membuat tabel SQL dengan indeks vektor dan melakukan pencarian vektor. Disarankan untuk menentukan TYPE SCANN
saat membuat indeks vektor di MyScaleDB sumber terbuka.
-- Buat tabel dengan body_vector dengan panjang 384CREATE TABLE default.wiki_abstract (`id` UInt64,`body` String,`title` String,`url` String,`body_vector` Array(Float32),CONSTRAINT check_length PERIKSA panjang(body_vector) = 384) MESIN = GabungTreeORDER OLEH id;
-- Memasukkan data dari berkas parket di S3INSERT INTO default.wiki_abstract SELECT * FROM s3('https://myscale-datasets.s3.ap-southeast-1.amazonaws.com/wiki_abstract_with_vector.parquet','Parquet');
-- Buat indeks vektor SCANN dengan metrik Cosine pada body_vectorALTER TABLE default.wiki_abstract ADD VECTOR INDEX vec_idx body_vector TYPE SCANN('metric_type=Cosine');-- Kueri kemajuan pembuatan indeks dari tabel `vector_indices`-- Tunggu hingga kemajuan indeks menjadi `Built`SELECT * FROM system.vector_indices;
-- Lakukan pencarian vektor, kembalikan 5 hasil teratasPILIH pengenal, judul, jarak(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]) SEBAGAI distanceFROM default.wiki_abstractORDER OLEH jarak ASCLIMIT 5;
Kami berkomitmen untuk terus meningkatkan dan mengembangkan MyScaleDB untuk memenuhi kebutuhan industri AI yang terus berubah. Bergabunglah bersama kami dalam perjalanan menarik ini dan jadilah bagian dari revolusi dalam pengelolaan data AI!
Perselisihan
Mendukung
Dapatkan berita atau pembaruan MyScaleDB terkini
Ikuti @MyScaleDB di Twitter
Ikuti @MyScale di LinkedIn
Baca Blog Skala Saya
Indeks terbalik & pencarian hibrida kata kunci/vektor berkinerja (didukung sejak 1.5)
Mendukung lebih banyak mesin penyimpanan, misalnya ReplacingMergeTree
(didukung sejak 1.6)
Observabilitas LLM dengan MyScaleDB dan MyScale Telemetry
LLM yang berpusat pada data
Ilmu data otomatis dengan MyScaleDB
MyScaleDB dilisensikan di bawah Lisensi Apache, Versi 2.0. Lihat salinan file Lisensi.
Kami mengucapkan terima kasih khusus atas proyek sumber terbuka ini, yang telah kami kembangkan MyScaleDB:
ClickHouse - DBMS analitik gratis untuk data besar.
Faiss - Perpustakaan untuk pencarian kesamaan yang efisien dan pengelompokan vektor padat, oleh Fundamental AI Research Meta.
hnswlib - Pustaka C++/python khusus header untuk perkiraan cepat tetangga terdekat.
ScanNN - Pustaka Tetangga Terdekat yang Dapat Diskalakan oleh Google Research.
Tantivy - Pustaka mesin pencari teks lengkap yang terinspirasi oleh Apache Lucene dan ditulis dalam Rust.
Lihat mengapa pemfilteran metadata sangat penting untuk meningkatkan akurasi RAG di sini. ↩
Algoritme MSTG (Grafik Pohon Multi-skala) disediakan melalui MyScale Cloud, mencapai kepadatan data yang tinggi dengan penyimpanan berbasis disk dan kinerja pengindeksan & pencarian yang lebih baik pada data vektor berskala miliaran. ↩