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
はじめに こんにちは。Reservation Service Devグループの佐藤です。ネット予約に関する開発全般に関わっています。 本記事では、繁忙期前のサイジングや新機能リリース時の負荷予測で利用しているログ分析について、従来利用していたSQLiteからDuckDBへ移行し、分析フローを改善した事例を紹介します。また、パーセンタイル分析を活用した具体的なminReplicasの算出方法や、「99%なら無視できる」という誤解を解くデータドリブンなサイジングアプローチについても解説します。 注意事項 本記事で紹介するサイジング手法は、予約システムという特性上、ビジネスクリティカルな操作でのエラーを極力避けるための保守的なアプローチです。ぐるなび社内では、各サービスの特性やビジネス要件に応じて、適切なサイジング方針を採用しています。本記事の内容は一つの事例として参考にしていただき、読者の皆様
はじめに 金融や投資に関する学術研究は日々進化していますが、最新の研究論文を効率よく発見する手段は意外と限られています。特に、非専門家が膨大な量の論文から興味のあるものを見つけ出すことは容易ではありません。 そこで私たちは「q-finder」を開発しました。arXivの金融(q-fin)カテゴリの論文を直感的なスワイプインターフェースで閲覧できる、いわゆる「Tinder for Papers」アプリケーションです。このアプリケーションは完全にクライアントサイドで動作し、特別なサーバー構築なしで簡単にデプロイできます。 技術スタック q-finderの特徴的な技術スタックを紹介します: フロントエンド: 純粋なHTML/CSS/JavaScriptによる実装(フレームワークレス) データ処理: DuckDB-wasm(ブラウザ上で動作するSQLデータベース) データ形式: Apache Pa
Disclaimer: 筆者は Snowflake で Senior Performance Engineer として働いていますが、この記事は公式の見解ではなく、あくまでも個人的な内容になります。 Intro COUNT(*), COUNT(1), COUNT(expr) の違いについて、おそらく NULL の扱いだったり、パフォーマンスだったりが違うんだろうな、という経験的に得られた知識があると思いますが、これを ANSI SQL 標準 (ISO/IEC 9075-2:2016) を元に体系的に整理します。 ANSI SQL における COUNT 集約関数の定義 ISO/IEC 9075-2:2016 の "4.16.4 Aggregate functions" にて、COUNT (および単一引数の集約関数) は下記のように定義されています。 COUNT(*) は集約内の行数を返す そ
概要 なぜ 自社 で DuckDB を採用したのかを、雑に書いていきます。 変更履歴 2025-03-12: DuckDB の開発体制と Zstandard で圧縮されたファイルの読み込みについて追記 2025-02-13: 今後やりたい事 v2 を追記 まとめ DuckDB / DuckDB-Wasm を利用する事で中小規模のサービスであれば、ログ解析や統計情報の可視化を低コストで提供することができる DuckDB を go-duckdb 経由で利用する事で、HTTP リクエスト単位での DuckDB を利用できる DuckDB-Wasm と OPFS を利用する事で、クライアント側での統計情報のため込みができるようになる 解決したい課題 解決したい課題は基本的にサービスの運用費を抑えるということです。中小規模のサービスでは運用費が大きな課題になります。 自社パッケージ向けのログ解析ツー
BIをコード管理したくないですか?私はしたいです。 BI as Codeを謳うOSSがあるようなので、Get Startedしてみます。 環境構築 公式ドキュメントを見ると、VSCodeのExtensionを入れて開発することを推奨しているようです。 2.Open the Command Palette (Ctrl/Cmd + Shift + P) and enter Evidence: New Evidence Project 3.Click Start Evidence in the bottom status bar 拡張機能のインストール後、2クリックでローカルサーバーが起動しサンプルページが立ち上がりました。 外部データを投入する せっかくなのでサンプルデータ以外のデータを投入してみます。 初期のサンプルデータは、DuckDBのテーブルとして配布されているようです。 ローカル環境
企業が業務システムにMySQL、PostgreSQL、Oracle、SQL Server といったリレーショナルデータベースを使いはじめてから今に至るまで、データベースへのコネクティビティは重要な課題であり続けています。1992年にMicrosoft が発表したOpen Database Connectivity(ODBC)API は、この課題に対する画期的な解決策となりました。 ODBC は、アプリケーションと多様なデータベース間の接続を標準化する技術として、現在でも広く採用されています。本記事では、ODBC 技術の仕組みとODBC ドライバーの役割、その重要性について詳しく解説します。 ODBC の仕組み ODBCとは ODBC は、アプリケーションからデータベースへのアクセスを標準化するためのAPI です。ODBC 4.0 の仕様はこちらに定義されています。この技術により、アプリケー
前提 ミドルウェアのログ可視化 ログサイズは全体で 1 TB 未満 ログは jsonl で出力される まとめ 非同期での可視化 オフラインでの可視化 低コスト DuckDB とは こちらをどうぞ。 DuckDB雑紹介(1.1対応版)@DuckDB座談会 - Speaker Deck サンプル とりあえず動くのが見たい人用です。ソースコードも公開してます。 DuckDB-Wasm + Parquet + S3-compatible object storage + OPFS S3 から Parquet ファイルを fetch して DuckDB-Wasm への登録 OPFS へ Parquet ファイルの保存 OPFS から Parquet ファイルの読み込み DuckDB-Wasm へ登録 SAMPLE 1 の出力 SAMPLE 1 での検索 SAMPLE 1 での Parquet ファイ
English | 简体中文 QuestDB is an open-source time-series database offering blazingly fast ingestion and dynamic, low-latency SQL queries. QuestDB delivers a multi-tier storage engine (WAL → native → Parquet on object storage), and the core engine is implemented in zero-GC Java and C++; QuestDB Enterprise includes additional components in Rust. We achieve high performance via a column-oriented storage
色々古くなったので 1 から書き直した DuckDB メモ v2 モチベーション JSONL を読み込んで解析するツールが欲しかった ログを読み込ませたいので圧縮機能は必須 自社のパッケージ製品が出力する JSONL を読み込んで解析できる仕組み 顧客が問題解析を気軽にできるようにしたい 顧客向けツールとして提供したい つまり顧客環境で動かしたい 1 バイナリ OSS として提供したい Apache-2.0 として公開したい ログファイルは大きくても 100 GB は行かない もともと Go + SQLite + JSONB で検討していた SQL で書きたい SQLite ファイルとして書き出したい SQLite ファイルフォーマットは信頼できる S3 などにファイルを置いておくだけにしたい クラウド版に組み込みたい 顧客毎に duckdb ファイル作ればいいのでは? duckdb ファ
はじめに 『達人に学ぶSQL徹底指南書 第1版』は、CodeZine連載とミック氏ウェブサイトの掲載記事をもとに、加筆・編集されたものです。 CodeZine連載、および、ミック氏ウェブサイトは、どちらもオンラインの無料公開コンテンツです。 今回、「書籍と元コンテンツの対応表」を作成しました。 書籍のために書き下ろされた一部コンテンツや演習問題は見れませんが、その一方、編集で割愛された内容などが含まれるので、書籍以上のことを学べる箇所もあります。 すでに新版『達人に学ぶSQL徹底指南書 第2版』が出ていますが、各テーマは第1版でも大きく変わっておらず、現在でも通用する基本的で面白い内容なので、一見の価値はあると思います。 書籍と元コンテンツの対応表 No. 目次 CodeZine連載 ミック氏ウェブサイト テーブル定義 サポートページ
困った時はドキュメント、どうもかわしんです。最近、諸事情で SQLite のドキュメントを読んでいます。 前回の記事 で紹介した通り SQLite を Rust で再実装しています。おかげさまで 300 を超える Github Star もいただき嬉しいです。 github.com SQLite は全ての仕様が ドキュメント にまとめられているので、そのドキュメントと本家の実装を読み比べながら実装しています。 SQLite を再実装する上で特に以下のドキュメントは役にたちます。これらだけで最小限の SQLite の実装は作れると思います。 Overview Documents > About SQLite いかに SQLite がすごいかを自慢しているドキュメント。使おうとしている人には安心を、再実装しようとする人には絶望を与えてくれます。 Programming Interfaces >
背景 vscode-dbt-power-userがよかったところ 定義にさっと行ける / 戻れる(Go to definitionが使える) VSCode内でモデル間のリネージが見れる VSCode内からdbtのモデルをさっと実行できる モデルファイルの単独の実行も簡単 コンパイル済みのSQLファイルをさっとプレビューできる まとめ 補足: vscode-dbt-power-userの導入方法 背景 dbtは前職時代から含めると二年以上使っていて、SQLでDWHやデータマートの開発をしようと思うともはやこれなしでは生きられないくらいには便利になっている。dbtがあっても大変なクエリは大変ではあるが、大変さは大分緩和してくれる。dbtがなくて、1つのSQLが1000行以上あり、中間クエリがテストもされていない、という状況はもう戻りたくない...。 dbtに限らずであるが、コードは書いていると
【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい by nao · 2022年6月25日 前書き:sqlcとは 本記事は、kyleconroy/sqlcの基本的な情報を紹介します。 sqlcは、DBスキーマ(DBテーブル定義)、SQLクエリ定義、設定ファイルの3点をインプットとして、型安全なCRUDコード + DBテーブルに対応したモデル(構造体)を自動生成します。ここでのモデルの自動生成には、複数テーブルをJOINしたクエリ用の構造体も含まれます。 個人的な視点では、sqlcは「SQLクエリを検証してから、そのクエリを実行するGolangコードを書いて、クエリ結果を受け取るための構造体を書くのが大変」という課題を解決するツールです。独自のDSL(Domain Specific Language)は殆ど登場しないので、SQLをゴリゴリ書ける
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く