タグ

*programとrdbに関するsh19910711のブックマーク (61)

  • 【R】Apache Arrowとduckdbを試してみる - Qiita

    これはR Advent Calendar 2021の24日目の記事です(ということにさっきしました)(遅刻)。 https://qiita.com/advent-calendar/2021/rlang Apache ArrowとDuckDB arrowパッケージ Rのarrowパッケージ(バージョン6.0.0)に遂にjoin系の機能やdplyr::group_by()への対応が入りいよいよ日常的に使っていきたいと思ったのでどのくらい早いのか計ってみようと思います。 私はApache Arrowを最近知り、凄いプロジェクトがあるものだと衝撃を受けたクチです。 https://github.com/apache/arrow Apache Arrowについてはクリアコード社のサイトにて積極的に日語の情報発信されているのでまずそちらをご覧いただくのも良いと思います。 Apache Arrowのご

    【R】Apache Arrowとduckdbを試してみる - Qiita
    sh19910711
    sh19910711 2024/05/20
    "Rのarrowパッケージ(バージョン6.0.0)に遂にjoin系の機能やdplyr::group_by()への対応 / バージョン6.0.0の威力についてはApache Arrow公式ブログでも力を入れて解説 / 目玉機能の一つが、duckdbパッケージとの統合" 2021
  • これからのデータ分析はPandasにDuckDBも併用して高速化しようという話

    こんにちは。 株式会社アイデミーでデータサイエンティストをやっている米倉と申します。 今回はデータ分析を高速化するために、従来のPandasによる実装に加えてDuckDBも併用して高速化を図ってみたのでご紹介します。 BI(ダッシュボード)作った → データ重すぎて動かない問題 データサイエンティストや機械学習エンジニアの代表的な日常業務として、データ分析があります。 データ分析作業を楽にしたり、より良い意思決定に繋げるための考察を得る手段として、BIツール(ダッシュボード)を作ることがあります。 Pythonでダッシュボード的なものを作ろうとした場合、WEBアプリ系のフレームワークがいくつか存在します。 代表的なものとして、私も日々の業務で使っているStreamlitがあります。 Streamlit: とにかく簡単に作れて、速攻で可視化できるのが、現場のデータサイエンティストには大助かり

    これからのデータ分析はPandasにDuckDBも併用して高速化しようという話
    sh19910711
    sh19910711 2024/04/09
    "PyGWalker: Dataframeからドラッグ&ドロップでX軸とY軸にする列を選択してグラフを作成 + DuckDBをベースとした内部エンジンがあり、それを有効化できるとのこと" 2023
  • AWS Lambda Pythonでsqlite-vssによるベクトル検索を利用する - maybe daily dev notes

    昨今LLMの台頭により、テキストをベクトル化して類似文書の検索に利用する手法が流行っています。 今回はAWSでこの検索を実現するための一方法として、SQLiteのプラグインであるsqlite-vssをAWS Lambda上で使う方法をまとめます。 github.com 意外とハマりどころや特有の考慮事項が多いので、必見です! アーキテクチャ LambdaSQLite?と思った方のため、このアーキテクチャの要点をまとめます。 このアーキテクチャのメリットは、完全なサーバーレスでベクトル検索を実行できる点です。OpenSearchやPostgres (pgvector)、Redisなどのインスタンスを管理する必要はありません。サーバーレスの利点はもはや言うまでもないでしょう。 また、SQLiteを使うため、ベクトルだけでなく他のリレーショナルなデータをあわせて格納できる点も便利でしょう。例え

    AWS Lambda Pythonでsqlite-vssによるベクトル検索を利用する - maybe daily dev notes
    sh19910711
    sh19910711 2023/08/20
    "sqlite-vss: SQLiteのバージョンにより若干使い方が変わり + SQLiteが3.41.0未満の場合は、クエリする際のパラメータ指定方法がやや冗長 + Faissというライブラリが使われています / check_same_thread=False"
  • すごいぞはやいぞDuckDB

    @eitsupi 大手製造業勤務 Excelが嫌になりRを触り初めて4年 Dockerイメージrocker/r-ver他のメンテナー データ基盤?の立ち上げを行い、SQLを触り始める 最近はPRQL界隈によく出没 SQLiteのようなRDBMS、だけど分析用途に特化 2019年、オランダ国立情報数学研究所(CWI)発 現在は非営利団体DuckDB Foundationが保有 CWIからスピンオフしたDuckDB Labs社メインで開発中 https://duckdblabs.com/news/2021/07/14/spin-off-company-DuckDB-Labs.html すごいぞDuckDB 様々な環境・言語上で動作 C、C++、CLI、JuliaJava、Node.js、ODBC、Python、R、RustScalaSwiftWasm リッチで使いやすいSQL Post

    sh19910711
    sh19910711 2023/06/18
    "DuckDB: 様々な環境・言語上で動作 / pandas.DataFrame、R DataFrame、Arrow Tableに対する直接クエリ / バグ報告→4分で返信→詳細を伝えた後15分後にはPRでバグ修正 / Web Shell: ブラウザ上でDuckDBを動かして動作を確認できます"
  • 【2023年版】Google ColabでSQLを使う【DuckDB, JupySQL】 - Qiita

    0. 使うもの JupySQLとDuckDBを使う。 JupySQLは以前紹介したipython-sqlと似たようなライブラリだが、現在あまり更新されていないipython-sqlに対して、(i) バグを修正し、(ii) 機能を追加しているものである。基的な使い方はipython-sqlと変わらない。 DuckDBSQLiteのOLAP版という立ち位置らしい。お手軽に使え、分析用途に強いDBだと理解している1。 ということで、実際に簡単に使う方法を見ていく。 1. 諸々準備 !pip install jupysql duckdb-engine # データ(csvファイル)のダウンロード !wget https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv

    【2023年版】Google ColabでSQLを使う【DuckDB, JupySQL】 - Qiita
    sh19910711
    sh19910711 2023/05/04
    "JupySQL: 現在あまり更新されていないipython-sqlに対して、(i) バグを修正し、(ii) 機能を追加しているもの / 2023年はPolarsとDuckDBとPRQLが流行ると思ってます / 既に流行ってるという説もあります"
  • ChatGPTを使ってPostgreSQLのPL/pgSQL関数を単純化してみる - Qiita

    最近の流行りに乗って、ChatGPTを使ってPostgreSQLのPL/pgSQLユーザ定義関数を単純化してみます。 単純化する対象のユーザ定義関数について PostgreSQLには、ページレベルの情報を取得するためのpageinspectというcontribモジュールがあります。このモジュールには、get_raw_page()とheap_page_items()という2つの関数が含まれています。get_raw_page()は、指定したページの生データを確認でき、heap_page_items()は、指定したページに含まれる行の情報を確認できます。これらの関数を組み合わせることで、テーブル内のページの情報を簡単に確認できます。 例えば、テーブルtestの2ページ目の情報を確認するには、以下のクエリを使用します。

    ChatGPTを使ってPostgreSQLのPL/pgSQL関数を単純化してみる - Qiita
    sh19910711
    sh19910711 2023/03/25
    "テーブル全体のページの情報を確認する28行のユーザ定義関数を、ChatGPTを使って1つのシンプルなSQL文に単純化 / 自分で考えるよりも効率的にSQLやユーザ定義関数を単純化できるケースがあることを確認できました"
  • Postgres WASMを支える技術

    Intro 10月3日にWebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgres WASM」がオープンソースで公開されました。 以前から気になっていたSupabaseが公開していたこと、最初にSnapletという企業がOSSで公開しておりそれをフォークして完成させたこと、色々気になることばかりでしたので自分なりに調べて深掘りしてみました。

    Postgres WASMを支える技術
    sh19910711
    sh19910711 2022/11/09
    "Postgres WASM: Supabaseが公開 + 最初にSnapletという企業がOSSで公開 / ファイルシステムやネットワーク関係で非常に開発が難航していたことがブログからも読み取れ / WebAssembly(v86)とBuildroot(i686)があれば何でもできる"
  • Magic Data Apps with Snowflake, Streamlit, and DuckDB

    sh19910711
    sh19910711 2022/07/17
    Snowflake + DuckDB + Streamlit / SnowflakeでCloud Storageに書き出したParquetファイルをDuckDBでWebアプリのデータベースとして利用する事例だ。参照系はPandasを使わなくても `SELECT * FROM read_parquet('temp.parquet')` でいけるのか👀
  • 詳説GraalVM(4) GraalVMが組み込まれたデータベース - Fight the Future

    こちらのツイートが話題になっていました。 MySQL MLE Pluginはマルチ言語VMであるGraalVMを内包することでMySQL上で複数の開発言語でストアドプログラムを作成/実行可能とする。近日中にMySQL Labsで利用可能となる予定。まずはJavaScriptのサポートから。MySQLデータ型およびPythonのサポートを準備中 https://t.co/MSxhcROA7e #mysql_jp— MySQL_Jp (@mysql_jp) April 28, 2018 GraalVMは組み込みが可能です。MySQL MLE PluginでMySQLGraalVMを組み込み、JavaScript/node.jsを(将来的にはその他言語も)データベース上で実行できるようになります。 MySQL MLE Pluginはまだリリースされていないのですが、実はOracle Datab

    詳説GraalVM(4) GraalVMが組み込まれたデータベース - Fight the Future
    sh19910711
    sh19910711 2022/05/19
    2018 / "MLE: Multilingual Engine / Oracle MLEで組み込みGraalVMを使い、JavaSciptの関数を実行しました。MySQL MLE Pluginでも同様の手順でJavaScriptを(そしてその他言語も)組み込みGraalVMを使って実行できるようになると思います"
  • SQLite3 を PostgreSQL にできるコマンド postlite

    はじめに SQLite3 くらい楽に扱えて、PostgreSQL みたいにネットワーク経由で使える物ないかなーなんて思ったりする事ないですか?ありますよね、あるんです。 postlite このニーズに答えてくれるのが postlite です。postlite を使うと SQLite3 で作られたデータベースファイルを、PostgreSQL の様に扱えます。 仕組みは至って簡単で、僕が開発している go-sqlite3 に PostgreSQL の通信プロトコルのガワと、仮想テーブルを使って PostgreSQL のスキーマを疑似しています。 インストール postlite は go-sqlite3 の vtable を使います。ですので、go install ではなく postlite の README.md に書かれた手順を使わなければなりません。

    SQLite3 を PostgreSQL にできるコマンド postlite
    sh19910711
    sh19910711 2022/04/04
    "postlite: SQLite3 で作られたデータベースファイルを、PostgreSQL の様に扱えます / go-sqlite3 に PostgreSQL の通信プロトコルのガワと、仮想テーブルを使って PostgreSQL のスキーマを疑似"
  • PostgreSQLのjsonbを使うときの落とし穴 - Qiita

    皆さん、PostgreSQL使ってますか? オープンソースRDBであれば、ほぼこれ一択。というプロダクトですよね。 と、まずはじめに MySQL 派に喧嘩を売ってみました。ちなみに当方は喧嘩を売られても買いません。 さて、 PostgreSQL にはJSONデータを格納するための json型と jsonb 型の2つがサポートされています。 一般的にはバイナリデータで保存される jsonb 型のほうがパフォーマンスが高いので、通常は jsonb 型を使うと思うのですが、 jsonb 型にはいくつかの落とし穴があります。今回はそれをお伝えします。 jsonbの落とし穴 同じキーが集約される。 キーが自動的にソートされてしまう。 になります。順番に見てみましょう。 同じキーが集約される。 JSONの事実上の仕様である RFC 8259 によると When the names within an

    PostgreSQLのjsonbを使うときの落とし穴 - Qiita
    sh19910711
    sh19910711 2021/11/05
    "本来ハッシュの順番は保証されないので冷静に考えれば当然ですが、見た目上の順番があるのでそれが保持されると思いがち / 特に配列とハッシュの区別が無いPHPプログラマーはその罠に陥りがちかも"
  • Big Sky :: C++ 用 SQLite3 ORM 「sqlite_orm」が便利。

    僕はよく C++ 用の SQLite3 ライブラリを探し歩いていて、見つけるたびに「1行掲示板」を実装してみている。 ウェブサーバは crow というライブラリを使い、SQLite3 の部分だけ差し替えて試すという感じ。初代は MySQL 用に作った。 GitHub - mattn/crow-bbs https://github.com/mattn/crow-bbs これを SQLite3 向けに直したのが crow-bbs-sqlite3 GitHub - mattn/crow-bbs-sqlite3 https://github.com/mattn/crow-bbs-sqlite3 さらにそれを sqlpp11 向けに直したのが crow-bbs-sqlite3-sqlpp11 GitHub - mattn/crow-bbs-sqlite3-sqlpp11 https://github

    Big Sky :: C++ 用 SQLite3 ORM 「sqlite_orm」が便利。
    sh19910711
    sh19910711 2021/10/27
    良さそう / "よく C++ 用の SQLite3 ライブラリを探し歩いていて、見つけるたびに「1行掲示板」を実装してみている"
  • PostgreSQL (POSTGRES) におけるLisp - eshamster’s diary

    前書き LispからPostgreSQLを扱う記事…ではなく、PostgreSQL歴史に見え隠れするLispについての調査もどき記事です。 発端は次のようなものです。仕事柄PostgreSQLのメーリスやソースを見たり見なかったりするのですが、今年の1月にRustgreSQLというスレッドがありました。PostgreSQLRust言語にポーティングするような話はないのかという 何を言っているんだこいつは 話題です。あり得るとしてもせいぜいC++だろうとか、いまだにC99ですらなっていないのに…*1とか、PostgreSQLのC言語の使い倒しっぷりを考えると死ぬほど非現実的だよとか、大変好意的な返信が並ぶ中、Robert Haas *2 の以下の発言が目を惹きました。 I'm tempted to snarkily reply that we should start by finish

    PostgreSQL (POSTGRES) におけるLisp - eshamster’s diary
    sh19910711
    sh19910711 2021/09/12
    "マイケル・ストーンブレーカー博士により、自身の開発したRDBであるIngresの後継としてPOSTGRES(= Post + Ingres)プロジェクトが発足 / 問い合わせ言語はSQLではなく、Ingresの流れを汲むQUEL / Franz Lispを使っていたとのこと"
  • Hosting SQLite databases on Github Pages - (or IPFS or any static file hoster) - phiresky's blog

    Hosting SQLite databases on Github Pages(or IPFS or any static file hoster) Apr 17, 2021 • Last Update Jun 04, 2023I was writing a tiny website to display statistics of how much sponsored content a Youtube creator has over time when I noticed that I often write a small tool as a website that queries some data from a database and then displays it in a graph, a table, or similar. But if you want to

    sh19910711
    sh19910711 2021/05/03
    DOMとSQLiteを繋げるのめっちゃ良さそう / "DOM as a database"
  • go-sqlite3を使ってCloud Spannerエミュレーターを作ってみた / Cloud Spanner emulator with go-sqlite3

    go-sqlite3を使ってCloud Spannerエミュレーターを作ってみた / Cloud Spanner emulator with go-sqlite3

    go-sqlite3を使ってCloud Spannerエミュレーターを作ってみた / Cloud Spanner emulator with go-sqlite3
  • GitHub - duckdb/duckdb: DuckDB is an in-process SQL OLAP Database Management System

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - duckdb/duckdb: DuckDB is an in-process SQL OLAP Database Management System
  • MySQL InnoDBの領域管理 - Qiita

    武蔵野Advent Calendar 2017の20日目の記事です。品川から参加しています。 今日はMySQL InnoDBの領域管理について勉強し、いくつか動作例を見ながらInnoDBに対する理解を深めていきたいと思います。アプリケーション開発者やデータベース管理者の方にとって明日からすぐに使えるノウハウとまではいきませんが、いつか何かの役に立てば幸いです。 まとめ InnoDBにはテーブルスペース、セグメント、エクステント、ページというデータの管理単位があるよ エクステント単位で空き領域が管理されているよ。だけどそれを知ったところであまり役には立たないよ 昇順INSERTが得意でランダムINSERTが苦手なのはよく知られているけれど、実は降順INSERTが得意だよ テーブルスペース、セグメント、エクステント、ページ InnoDBのデータが格納されるファイルのことをテーブルスペースと呼び

    MySQL InnoDBの領域管理 - Qiita
    sh19910711
    sh19910711 2020/01/18
    jeremycole/innodb_ruby
  • PostgreSQLにmoney型というのがあるそうですよという話 - アクトインディ開発者ブログ

    こんにちは。kanekoです。 私はいこーよの中でもWEBチケット販売に関するプロダクトのチームにいます。社内での呼び方はいくつかありますがここではプロダクトをticket、チームをチケットチームとします。 この記事の結論 結論を述べますとDBがPostgreSQLrailsアプリでmoney型のカラムをもつテーブルを作成してあれこれ試してみたところよく分からないこともあったが楽しかった。という感じです。(ざっくり) money型との出会い ticketではDBにPostgreSQLを採用しています。 チケットチームは今年動き始めたチームで、アクトインディでは初のECサービスの開発をしています。 私自身も初めてなことがたくさんあり毎日が勉強です。そんな中「DBお金(料金、手数料ect)の扱いって何が正解なのかしら??」とふと検索したことがきっかけで、つい最近money型があると知りまし

    PostgreSQLにmoney型というのがあるそうですよという話 - アクトインディ開発者ブログ
  • DBMによるテーブルデータベース - mixi engineer blog

    正月早々インフルエンザにかかって寝込んだmikioです。電車に乗る時や繁華街などに出る時はマスク着用が必須ですね。さて今回は、Tokyo Cabinetで実装したテーブル方式のデータベースについて紹介します。意外にどうして強力な機能なので、このネタは連載することを予告します。 テーブルデータベースとは 簡単に言えば、リレーショナルデータベースのテーブルのように、複数の列からなるレコードを格納できるデータベースです。SQLや表結合などの複雑な機能はサポートしませんが、そのぶん高速に動作します。つまり、DBMの速度で動くリレーショナル風データベースです(厳密にはリレーショナルデータベースではありません)。 TCの基となるハッシュデータベースは、単純なkey/value型のデータベースであり、つまりキーにも値にもスカラ(数値や文字列などの特に構造を持たない単一の値)しか格納することはできません

    DBMによるテーブルデータベース - mixi engineer blog
  • MySQLのストレージエンジンを自作してみる - 備忘録の裏のチラシ

    MySQL のストレージエンジン(SE)を自作してみたときのメモ。バージョンは 8.0.13。 アーキテクチャをざっくりと掴むことが目的なので、ストレージエンジンの自作といっても非常に単純な操作しかできないものです。 RDB らしさとも言えるインデックスや行レベルロック、トランザクションなどの高度な処理は実装せず、簡単に入出力の流れを追っていきます。 ゴールは以下の基的な機能を実現して、「あ、こんなもんなんだ〜」感を覚えることです。 CREATE 文でテーブルの作成 INSERT 文で行の挿入 SELECT 文で行の取得 ちなみに MySQL のコードは C/C++ です。(といっても、テンプレート等の C++ らしい拡張的な機能は使われておらず、ほぼ C で書かれています。クラスは頻繁に使われているので、俗に「クラスのあるC」なんて言われている模様。そのため、C をある程度理解していれ

    MySQLのストレージエンジンを自作してみる - 備忘録の裏のチラシ