このごろAIが流行っていて、ビックデータの処理にリレーショナルDBを用いるのはあるあるで、なんでかって言ったら昔から使ってるからです。
最近の流行りであるRAGではベクトルでデータの類 似度を算出して生成AIにデータを突っ込める、ファインチューニングよりも少ないデータでファインチューニングと同じようなパフォーマンスが得られる(ということもある)。
AI時代のSQL
生成AIやRAG、データの分析用途で用いられるDBにPostgreSQL
というDBがある。
今まではMySQL
とPostgreSQL
で二分化していた(と言われている)が、近頃はPostgreSQL
が流行っている。
PostgreSQLの何がいいのか
まず、PostgreSQL
はリレーショナルデータベースでありながら、JSON
形式を扱える。これにより、データの見やすさを担保するだけではなく、実際に分析に用いる際に便利にある。
そしてベクトル検索をサポートする拡張機能が存在している。RAG
でベクトルDBとして扱えるので普通のDBとして使いつつ、ベクトル用のカラムを作ることが可能。
PostgreSQLとSupabase
SupabaseはPostgreSQLを使って、Firebaseに類似した機能を提供してくれるもので、Supabaseでベクトル用の拡張機能を使うことももちろん可能で、サービス自体も個人での利用なら無料で十分なのが助かる。
MySQLはベクトルが扱えないのか
広い目で見たらNoといえる。なぜならベクトルは極論数値から成る配列だから。そして一応コサイン類似度を求める構文もサポートされている(なおハチャメチャに処理速度が遅いことは留意されたし。)。ただ、ベクトル検索用のエンジンを外部で用意できるなら話は別で、ベクトル算出用の数字さえあればいいので確かに遅いっちゃ遅いけど実用はギリギリできるレベルまで使えるようになる。よかったー