1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EvaDBで非構造化データを検索しよう - DBにもAIの力を -

Posted at

image.png

何ができるのか

画像動画PDFなどの非構造化データ
DBレコードと同じようにSQLクエリで扱うことができます。
すごい便利そうですね!

非構造化データ置き場所としての接続先は下記などが可能です。

  • ローカルファイルストレージ
  • AWS S3バケット

どのように使用するのか

まずEvaDBを使用するにはPythonインタプリタが3.9以上であることが必要です。
pythonにて下記のようにインストールします。

# Python仮想環境を作成します。
python -m venv evadb-venv

# 仮想環境の立ち上げ:MacOSの場合
source evadb-venv/bin/activate
# 仮想環境の立ち上げ:Windowsの場合
evadb-venv\Scripts\activate.bat

# 関連ライブラリの更新とEvaDBの最新化
pip install --upgrade pip setuptools wheel
pip install --upgrade evadb

EvaDBは既存のDBに接続してINDEXを作成し、そこにデータソースを読み込んで使用します。

接続は下記のようにDBカーソルを取得します。

import evadb
cursor = evadb.connect().cursor()

# クエリの実行
cursor.query("SHOW FUNCTIONS;").df()

ストレージから検索先のデータをどうロードするかというと下記のクエリを実行

# 動画かつS3の場合の例:AWS S3上のmnist.mp4という動画をMNISTVidというテーブルへ保存
LOAD VIDEO 's3://bucket/eva_videos/mnist.mp4' INTO MNISTVid;

# 画像かつローカルの場合の例:
LOAD IMAGE 'reddit-images/*.jpg' INTO reddit_dataset;

これ、どこに保存されているかというと、デフォルトではevadb_dataというローカルフォルダに保存されているそうです。このフォルダ管理が運用時の肝になりそうですね。

公式に記載されているサンプルですが、例えばあるサイトのレビューとして画像やPDF、動画データからネガティブなレビューがあるかを下記で検索しています。

# 
SELECT
    ChatGPT("Respond to the review with a solution to address the reviewer's concern",
    review)
FROM
    postgres_data.review_table
WHERE
    ChatGPT("Is the review positive or negative?", review) = "negative";

詳しくは公式ドキュメントに。
https://evadb.readthedocs.io/en/latest/index.html

今後への期待

まだバージョンが0.3.10となっているため正式リリースとはなっていないようですが、今後のロードマップとして多様なデータソースへの対応やSKLearnとの連携などデータサイエンス分野連携も予定されているようです。

HuggingFaceにある学習モデルを使用したり、トレーニングをさせることなどもできるようなので次世代のDBとして期待できるように思いました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?