タグ

DB/ストレージとSQLに関するmisshikiのブックマーク (13)

  • 誰でもわかる全文検索入門

    全文検索エンジンも、事前に検索対象のデータを調べてこのような索引を作っておくことで、高速な検索を実現しています。 インターネット検索の例 たとえばインターネット検索の場合、まず各サイトからデータを収集して、その中から索引に載せる単語を選んで索引を作ります。索引のデータは下の図の右側のような表になっています。各単語と、それがどのサイトのどこにあったのかを記録しておく形です。 検索の時は、この索引データを調べます。例えば利用者が「理解」という言葉で検索したら、索引の「理解」のところを調べます。そうすると「サイトAの8文字目と18文字目、サイトGの……」と出現場所がわかるので、すぐに結果を返せます。 なお、この図では索引の単語の並び方が適当ですが、実際にはと同じように「あいうえお順」などに並べておいて、すぐに単語を見つけられるようにしてあります。 索引にない単語 この仕組みの場合、索引にある単

    誰でもわかる全文検索入門
    misshiki
    misshiki 2024/05/21
    “2020/12/20に公開。2022/02/06更新”の記事だけど...今バズっている。それはともかく内容は平易で分かりやすくて良い。
  • リレーショナル・データベースの世界

    序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み

  • 【Golang】Azure OpenAI で Embedding したベクトルを使って、自前検索エンジンを作ろう

    この記事は、Azure Advent Calendar 2023 の 10 日目の記事です。🎄 はじめに Azure OpenAI Service では、 text-embedding-ada-002 というモデルを使って、文章を 1536 次元のベクトルに Embedding できます。 また、PostgreSQL では、 pgvector という拡張機能を使って、ベクトルを保存・検索機能を導入できます。 今回はこれらを組み合わせて、Azure OpenAIEmbedding したベクトルを Golang のアプリケーションから PostgreSQL に保存し、類似度検索する方法を紹介します。 pgvector とは pgvector は、PostgreSQL にベクトルデータを保存・検索する機能を追加する拡張機能です。 ベクトルデータを保存するためのデータ型と、ベクトルデータを

    【Golang】Azure OpenAI で Embedding したベクトルを使って、自前検索エンジンを作ろう
    misshiki
    misshiki 2023/12/11
    “Azure OpenAI で Embedding したベクトルを Golang のアプリケーションから PostgreSQL に保存し、類似度検索する方法を紹介します。”
  • 「ベクトル検索 vs 全文検索」〜Amazon Bedrockの埋め込みモデルを用いたプロトタイピング〜 - コネヒト開発者ブログ

    ※ この記事は、AWS (Amazon Web Services) の技術支援を受けて執筆しています。 はじめに この記事はコネヒトアドベントカレンダー 8日目の記事です。 コネヒト Advent Calendar 2023って? コネヒトのエンジニアやデザイナーやPdMがお送りするアドベント カレンダーです。 コネヒトは「家族像」というテーマを取りまく様々な課題の解決を 目指す会社で、 ママの一歩を支えるアプリ「ママリ」などを 運営しています。 adventar.org こんにちは!コネヒトの機械学習エンジニア y.ikenoueです。 突然ですがみなさん、Amazon Bedrockをご存知でしょうか。 aws.amazon.com Amazon Bedrock(以下、Bedrock)は、テキスト生成AIをはじめとする基盤モデル (Foundation Model)*1を提供するAWS

    「ベクトル検索 vs 全文検索」〜Amazon Bedrockの埋め込みモデルを用いたプロトタイピング〜 - コネヒト開発者ブログ
    misshiki
    misshiki 2023/12/11
    ベクトル検索 vs 全文検索 “キーワードを用いて検索を実行した場合、全文検索ではそのクエリを文書内に多く含むものが上位に並ぶ傾向が、ベクトル検索では文書の長さが短いものが上位に並ぶ傾向が見受けられた。”
  • MySQLで全文検索機能を使う際のパフォーマンスについて調査してみた - iimon tech blog

    こんにちは、CTOの森です。iimonは今回が初のアドベントカレンダー参加です! 記事はiimonアドベントカレンダー1日目の記事となります。 はじめに 検証した環境 MySQL/mecabのインストール 大量のデータを入れる 1レコードのINSERTにかかった時間 検索してみる 検索文字列が「出来事」の場合 インデックスなし N-gram(bi-gram) IN NATURAL LANGUAGE MODE IN BOOLEAN MODE MeCab IN NATURAL LANGUAGE MODE IN BOOLEAN MODE 検索文字列が「チューリングはロンドンのリッチモンドに住み」の場合 まとめ 参照したサイト 最後に はじめに 今回はMySQLで全文検索機能を使う際のパフォーマンスについて書こうと思います! 全文検索をちゃんと使うのであればElasticsearchやSolrな

    MySQLで全文検索機能を使う際のパフォーマンスについて調査してみた - iimon tech blog
  • PostgreSQL を使用して生成 AI アプリケーションを構築するための AlloyDB AI を発表 | Google Cloud 公式ブログ

    ※この投稿は米国時間 2023 年 8 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。 生成 AI は数え切れないほどの方法で私たちの想像力を捉えてきました。それは、人間のような反応をする chatbot だけでなく、まったく新しいユーザー エクスペリエンスを引き出してくれます。さらに、追加の専門的なスキルを必要とする従来の AI ワークロードとは異なり、これらの新しい生成 AI ワークロードは、デベロッパー コミュニティのより多くの開発者が利用できます。アプリケーション デベロッパーが生成 AI アプリケーションの構築に格的に取り組む際、イノベーションの鍵はモデルそのものだけでなく、その使用方法やモデルの基盤にあるデータにもあります。 このたび、Google は、Google Cloud Next において、運用データを使用したパフォーマンスとスケーラ

    PostgreSQL を使用して生成 AI アプリケーションを構築するための AlloyDB AI を発表 | Google Cloud 公式ブログ
    misshiki
    misshiki 2023/09/19
    “PostgreSQL を使用して生成 AI アプリケーションを構築するための AlloyDB AI を発表”
  • Jupyter Notebook上でSQLをらくらく実行するJupySQL

    Jupyter NotebookやJupyter Labといった、Notebookでデータ分析業務をする人が、ここ数年で増えてきました。 Notebook上でデータ分析をするとき、外部のCSVファイルやDBのデータテーブルなどからデータセットを取得する必要があります。 よくあるのが、Pandasを利用し取得したデータセットをデータフレームに格納するケースです。 データ規模が大きいほど、ある問題が起こります。 例えば、メモリの消費の問題です。 データフレームに格納するということは、PCなどのメモリをそれだけ消費します。 多くの場合、読み込んだ直後のデータフレームは、そのままデータ分析に使えることは少なく、何かしらの加工なり処理がなされ整えられます。 ある程度整えられたデータセットの状態で、データフレームとして格納した方が、メモリの消費量は少なくてすみます。 他には、外部DBのパフォーマンス低

    Jupyter Notebook上でSQLをらくらく実行するJupySQL
    misshiki
    misshiki 2023/08/17
    “「Jupyter Notebook上でSQLをらくらく実行するJupySQL×DuckDB」”
  • An in-process SQL OLAP database management system

    DuckDB is a fast in-process analytical database DuckDB supports a feature-rich SQL dialect complemented with deep integrations into client APIs Installation Documentation -- Get the top-3 busiest train stations SELECT station_name, count(*) AS num_services FROM train_services GROUP BY ALL ORDER BY num_services DESC LIMIT 3;

    An in-process SQL OLAP database management system
    misshiki
    misshiki 2023/08/17
    “DuckDB はインプロセス SQL OLAP データベース管理システム です”
  • Vector Similarity Search with Azure SQL database and OpenAI - Azure SQL Devs’ Corner

    misshiki
    misshiki 2023/06/22
    “Wikipedia 記事を検索するためのサンプル ソリューションを構築” Azure SQL データベースのベクトルを保存。SQLでコサイン類似度を計算することでキーワードに関連する記事を取得する。
  • SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏

    SQLiteでベクトル検索を可能にするsqlite-vssそんなポータブルで便利なSQLiteですが、そのSQLiteでベクトル検索ができるとなるとより夢が広がります。 SQLite自体はファイルベースなので、あらかじめベクトルデータを設定したSQLiteデータベースファイルをアプリに組み込んで配布しても良いわけです。そうすればデータベースサーバを用意しなくて済む分コストも圧縮されますし、組み込みなのでアプリからは軽量に動作します。 ホスティングする場合でもFly.ioのようにボリュームイメージを利用できるPaaSを利用すれば、問題なく運用が可能です。 前置きが長くなりましたが、このような夢を叶えてくれる拡張がsqlite-vssです。ベクトル検索はFaissベースで実装されています。 とっても良さげではあるのですが、実際に組み込んでみた場合のコード例が見つからなかったので、手を動かして試

    SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏
    misshiki
    misshiki 2023/06/08
    “SQLiteでベクトル検索を可能にするsqlite-vss”Pineconeみたいなベクトルデータベースと同様の処理をできるようにする。他にもRedisとかいろいろあるし比較記事がほしいところ。
  • [Oracle Database]SQLで機械学習 異常検出 - Qiita

    はじめに この記事は、JPOUG Advent Calendar 2022 22日目の記事です。21日目はyoshikawさんの記事Oracle TimesTen In-Memory Database Express Edition(XE)を試してみるでした。 こちらの記事では Oracle Database をご利用されている方々により使い倒していただくべく、Oracle Machine Learning の機能を利用してSQLで異常検出する手順をご紹介します。 Oracle Machine Learningの紹介 2019年12月以降、Oracle Database をご利用いただいておりましたら追加ライセンス不要で Oracle Machine Learning 機能をご利用いただけるようになりました。 出典:https://blogs.oracle.com/database/pos

    [Oracle Database]SQLで機械学習 異常検出 - Qiita
    misshiki
    misshiki 2022/12/22
    “Oracle Database をご利用いただいておりましたら追加ライセンス不要で Oracle Machine Learning 機能をご利用いただける”
  • ゼロから作る時系列データベースエンジン

    軽量な時系列データベースエンジンをスクラッチで開発する機会があったので、どのように実装したのかを必要知識の解説を交えながらまとめていきます。 実装はGo言語によるものですが、記事のほとんどは言語非依存な内容となっています。 モチベーション 筆者は時系列データを扱うツールをいくつか開発しています。その中の一つであるAliは負荷テスト用のcliツールで、メトリクスをクライアント側でリアルタイム描画できるのが特徴です。リクエスト毎にレイテンシーなどの計測結果が際限なく書き込まれてくる中、同時に一定のクエリパフォーマンスが求められます。 これは言ってしまえば、簡易クエリ機能付きのpush型モニタリングシステムを単一ホストで実現するようなものです。 以前までの実装ではヒープ上の可変長配列にデータポイントを追加していくだけだったので、当然ながら時間の経過とともにメモリ使用量が増加していく問題を抱えて

    ゼロから作る時系列データベースエンジン
    misshiki
    misshiki 2021/07/01
    “軽量な時系列データベースエンジンをスクラッチで開発する機会があったので、どのように実装したのかを必要知識の解説を交えながらまとめ”
  • 開発効率を計測するデータ基盤の管理にDataformを使ってみた - yasuhisa's blog

    Dataformを初めて使ってみたので、雑に感想を書いておきます。結構よかった。 使ってみようとした背景 Dataformについて 試してみてどうだったか よかった まだまだこれからっぽいところ & 気になり 参考 使ってみようとした背景 今週、社内の開発合宿に参加していた。変更のリードタイムやデプロイ頻度などのFour Keysにあるような指標を計測できるデータ基盤を作るのが目標。様々なチームの開発のパフォーマンスをトラッキングしやすくして、うまくできているチームがなぜうまくいっているのかを明らかにしたり、改善施策を行なった結果指標も改善しているか定量的に確認できるようにして、開発効率を上げる土台を作るというのが目的。この辺の詳しいことは後々別のエントリで書かれると思う。 自分のチームは3人構成で、在宅のオンラインでやっていた。 id:shiba_yu36さん Mackerelチームでも

    開発効率を計測するデータ基盤の管理にDataformを使ってみた - yasuhisa's blog
    misshiki
    misshiki 2021/01/25
    “Dataformはデータパイプラインを管理するのに便利なGoogle Cloudのサービス”
  • 1