並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 408件

新着順 人気順

sql insert select create tableの検索結果1 - 40 件 / 408件

  • 文春オンラインの記事分析を支える爆速ダッシュボードを作るまで|田島将太 | TAJIMA Shota

    従来のGoogleアナリティクスである、ユニバーサル アナリティクス(以下UA)のサポートがいよいよ2023年7月に終了することが、先日アナウンスされました(※)。昨年対比やトレンドをチェックすることを考えると、2022年内できるだけ早めに次世代のGoogleアナリティクス(以下GA4)へ移行したいWebメディア運営者も多いかと思います。新しいツールの勉強や、既存システムの改修が必要な問題ではありますが、この機会を、データ収集・可視化の設計を見直し、日々の意思決定の共通言語としてデータを使いやすくするチャンスと捉えてみてはいかがでしょうか。 ※  Google、ユニバーサルアナリティクスのサポートを2023年7月1日に終了。早めのGA4移行を推奨 このnoteでは、前半でダッシュボードによるデータの可視化にコストをかけるべき理由を整理します。後半では、2021年秋に文春オンラインのダッシュ

      文春オンラインの記事分析を支える爆速ダッシュボードを作るまで|田島将太 | TAJIMA Shota
    • Web APIを手作りする時代は終わった?

      ::: message info これは[フィヨルドブートキャンプ Advent Calendar 2022 Part.1](https://adventar.org/calendars/7760)の25日目の記事です。 昨日の記事は:@shujiwatanabe:shujiwatanabeさんの[質問しながら出来るようにしていく](https://shu91327.hatenablog.com/entry/2022/12/24/091025)と:@saeyama:saeyamaさんの[Rails/Vue 編集時に画像をD&Dで入れ替えした時のActive Storageの保存方法](https://saeyama.hatenablog.com/entry/2022/12/24/000123)でした。 ::: ↓こういうのを職人が丹精込めて一つ一つ手作りする時代は終わりました。 ```sh

        Web APIを手作りする時代は終わった?
      • 履歴テーブルから最新の1件を取ってくる方法 - そーだいなるらくがき帳

        例えば次のようなテーブルがあったとする。 -- PostgreSQL CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, data TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- MySQL CREATE TABLE history ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, data TEXT, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ); INSERT INTO history (user_id, data, created_at) VALUES (1, 'First

          履歴テーブルから最新の1件を取ってくる方法 - そーだいなるらくがき帳
        • 論理削除という技術的負債、それでも僕たちは使い続ける - じゃあ、おうちで学べる

          はじめに 「論理削除?deleted_atカラム追加すればいいでしょ」この一言から始まる地獄を、何度見てきただろうか。 最初は簡単に見える。カラムを1つ追加するだけ。しかし、その「簡単さ」こそが罠だ。 論理削除は技術的負債の温床だ。WHERE句への条件追加忘れ、認知コストの増大、テストの複雑化、パフォーマンス劣化。すべては「最初にドメインを考えなかった」ツケである。 しかし現実として、サービスを運用していくと論理削除が必要になる場面は確実に訪れる。 論理削除の本質は、「このレコードは存在するが、存在しないことにしてほしい」という矛盾だ。この矛盾を解消するか、受け入れて安全に管理するか。本記事ではその両方のアプローチを解説する。 なお、私はDBのスペシャリストではないので、ここで紹介する方法が唯一の正解というわけではない。あくまで一つのアプローチとして参考にしてほしい。データベース設計は文脈

            論理削除という技術的負債、それでも僕たちは使い続ける - じゃあ、おうちで学べる
          • アジャイル開発とデータベース設計 - 変化に対応するシンプルな実装のために必要なこと - Agile Journey

            はじめまして。そーだい(@soudai1025)です。私は普段は技術コンサルティングや受託開発を請け負う合同会社HaveFunTechの代表として、また、予防治療の自社サービスを展開する株式会社リンケージのCTOという二足の草鞋を履き、日々、さまざまなWebサービスの開発に携わっています。 これまでの開発経験のなかで、データベース設計に関わるさまざまな問題に遭遇してきましたが、本稿ではとくに、アジャイル開発時に発生しやすい問題とその対処についてお伝えしたいと思います。開発の現場で目にしやすい実装におけるアンチパターンを示しつつ、アジャイルという指針を維持しながら、対処となるデータベース設計についてご紹介します。 会員登録のアンチパターンと処方箋 イージーな実装とシンプルな実装 Userと言う名の罠 拡張と破綻 データベースは変化に弱い 仕様変更とテーブル変更 Addで変化に追従する 正規化

              アジャイル開発とデータベース設計 - 変化に対応するシンプルな実装のために必要なこと - Agile Journey
            • Cloudflare、こんなに無料でいいんだろうか ― 「クラウド」の定義が書き換わったことに気づかない人々へ|白井暁彦 aka しらいはかせ

              Cloudflare、こんなに無料でいいんだろうか ― 「クラウド」の定義が書き換わったことに気づかない人々へ 全世界で数百万人が同時にアクセスするようなサービスを設計し、AWSに毎月、数十万から数百万円という「血の滲むようなコスト」を支払い続けてきた立場から言わせてもらえば、今のCloudflareが提示している世界観は、もはや「CDN」なんていう可愛い言葉で呼べるものではない。かつて私たちがオンプレミスからAWSへ移行した時に感じたあのパラダイムシフトが、今、Cloudflareという「Supercloud」によって、さらに残酷な形で繰り返されている。 あえて、いま提供されているサービスを地べたから天井まで並べてみるとこんな感じだ。Cloudflare DNS, CDN, WAF, DDoS Protection, Bot Management, SSL/TLS, Zero Trust

                Cloudflare、こんなに無料でいいんだろうか ― 「クラウド」の定義が書き換わったことに気づかない人々へ|白井暁彦 aka しらいはかせ
              • DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG

                みなさん、おはようございます! CARTA fluct エンジニア の なっかー@konsent_nakka です。 CARTA TECH BLOG アドベントカレンダー 12/14ということで、普段DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識をざっとまとめてみました。 とりあえずこれだけ読んでおけば最低限は困らない、もし何か困った時にはあそこで出てきた内容をもう少し深く調べて見るか、というきっかけになれば良いなと思います。 厳密な定義よりも普段DBを扱う中でロックについてあまり意識したことがないような人にもすっと入ってくるように簡単な表現を優先して書いていますがご了承ください。 目次 留意事項 排他ロックと共有ロック トランザクション分離レベル SELECTのロックレベルを変更する 共有ロック: LOCK IN SHARE MODE 排他ロ

                  DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG
                • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

                  こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 本番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

                    MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
                  • Ubuntu 24.04 LTS サーバ構築手順書

                    0 issue "letsencrypt.org" 0 issuewild "letsencrypt.org" 0 iodef "mailto:yourmail@example.jp" §OS再インストール 初期設定で期待通りの設定ができていない場合は、OSの再インストールをする。 さくらVPSのコントロールパネルから、OSを再インストールするサーバを選ぶ。 www99999ui.vs.sakura.ne.jp §OSのインストール操作 Ubuntu 24.04 LTS を選ぶ。 OSインストール時のパケットフィルタ(ポート制限)を無効にして、ファイアウォールは手動で設定することにする。 初期ユーザのパスワードに使える文字が制限されているので、ここでは簡単なパスワードにしておき、後ですぐに複雑なパスワードに変更する。 公開鍵認証できるように公開鍵を登録しておく。 §秘密鍵と公開鍵の作成 ク

                      Ubuntu 24.04 LTS サーバ構築手順書
                    • 型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog

                      SmartHRで届出書類という機能を担当しているプロダクトエンジニアのsato-sと申します。 今日は、以前私が調査にとても苦労したパフォーマンス上の問題の話を紹介したいと思います。 TL;DR PostgreSQLのアップグレードを実施した アップグレード後、今までは問題のなかった特定のクエリの実行に1時間超かかり、DBのCPU使用率がピッタリ100%に張り付くようになった 色々調査した結果、PostgreSQL上の型キャストの場所のせいで、良くないクエリプランが選択されることが原因だった 型キャストの場所には気をつけよう PostgreSQLのアップグレードと挫折 SmartHRでは基本的にWebアプリケーションのデータベースとしてGoogle CloudのCloudSQLによって提供されるPostgreSQLを利用しています。 私の担当している届出書類機能では、利用中のPostgre

                        型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog
                      • オレオレ RAG をさくっと作る

                        この記事は間違いが含まれている可能性があります。 もともと自社のドキュメントでは Meilisearch で日本語全文検索を実現していましたが、ドキュメントに質問できるようしたいと思い、簡単な RAG を作りたい!と思っていました。 とりあえず、ドキュメントを分割し、ベクトル化してベクトルデータベースに突っ込んで、質問をベクトル化して結果を引っ張り、それを LLM に食べさせて解説させる、というのができればよいということがわかりました。 ベクトル化はよく使われている OpenAI Embeddings API を利用し、ベクトルデータベースは普段からよく使っている DuckDB に VSS (Vector Similarity Search for DuckDB) という拡張を使うことにしました。 自社のドキュメントをなんとかうまいこと分割して、あとは分割したドキュメントを API を叩い

                          オレオレ RAG をさくっと作る
                        • SQL滅ぶべし | ドクセル

                          SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012) SQL • SQL は目的別に 4つに分けられる • DCL (データ制御言語) GRANT とか • DDL (データ定義言語) CREATE TABLE とか • TCL (トランザクション制御言語) ROLLBACK とか • DML (データ操作言語) • INSERT, UPDATE, DELETE, SELECT • データ分析者にとって重要なのは SELECT 文

                            SQL滅ぶべし | ドクセル
                          • エムスリーのデータ基盤を支える設計パターン - エムスリーテックブログ

                            こんにちは、エムスリー エンジニアリンググループ の鳥山 (@to_lz1)です。 ソフトウェアエンジニアとして 製薬企業向けプラットフォームチーム / 電子カルテチーム を兼任しています。 ソフトウェアエンジニアという肩書きではありますが、私は製薬企業向けプラットフォームチームで長らくデータ基盤の整備・改善といったいわゆる "データエンジニア" が行う業務にも取り組んできました。 本日はその設計時に考えていること / 考えてきたことをデータ基盤の設計パターンという形でご紹介しようかと思います。多くの企業で必要性が認識されるようになって久しい "データ基盤" ですが、まだまだ確立された知見の少ない領域かと思います。少しでもデータエンジニアリングを行う方の業務の参考になれば幸いです。 データ基盤の全体像 収集部分の構成 RDBデータ ログデータ 活用部分の構成 データマートの実例 「データ基

                              エムスリーのデータ基盤を支える設計パターン - エムスリーテックブログ
                            • PostgreSQLで時間枠を適切に扱う設計 - そーだいなるらくがき帳

                              はじめに Googleカレンダーのような時間枠を扱うシステムを設計する際、開始・終了時刻を管理するロジックは容易ではない。 しかし、PostgreSQLには 範囲型 があり、この機能を活用することで、開始時刻(begin_at)と終了時刻(end_at)を1つのカラムで扱えるようになる。 そこで本稿では、範囲型を用いた設計と、その利点を紹介する。 時間枠を扱う難しさ まず前提として時間枠の扱いがなぜ難しいかを紹介する。 ソフトウェアデザインでやっている連載、実戦データベースリファクタリングの 【12】厄介な時間枠に向き合う でも紹介したが、時間の範囲を比較するときが難しい。 範囲の重なりには以下の種類がある。 包含:範囲Aが範囲Bを完全に含む 重複:範囲Aと範囲Bに共通点がある 隣接:範囲Aと範囲Bが隣り合う 時間枠の扱いはSQLに限らず、プログラミングの題材として難易度が高い。 特に重複

                                PostgreSQLで時間枠を適切に扱う設計 - そーだいなるらくがき帳
                              • 関数名、メソッド名、変数名でよく使う英単語のまとめ

                                プログラミングをしていると関数名、メソッド名、変数名をどうするか悩みます。 ロジックより命名に時間を費やすこともざらにあります。翻訳したり、一般的な命名規則なのかいつも検索して大変です。 よく使うサイトの内容をコピってメモしておく 関数名とメソッド名の違いについて よく使う英単語のまえに、いつもごっちゃにして使っているけど、定義はこんな感じ 「関数」と「メソッド」の違い 似ているところ どちらも何か(引数)を入れると処理をして何か(戻り値)を返してくれます。 違うところ やってること自体は大差ありません。概念としては違います。 メソッドはオブジェクト指向で登場する用語で、オブジェクトの動作を定義したものです。 まずオブジェクトありきなのですね。一方の関数は、オブジェクト云々は関係ありません。 個人的な使い分け Java で登場する関数は「メソッド」です。C 言語で登場する関数は「関数」と呼

                                  関数名、メソッド名、変数名でよく使う英単語のまとめ
                                • SQL Training 2021

                                  Transcript SQL 株式会社 AI Shift 三宅 悠太 1. データベース 2. SQL I 3.トランザクション 4. データベース設計 5. インデックス 6. 実行計画 7. SQL II データベース データベースとは “A database is an organized collection of inter-related data that models some aspect of the real-world “ (CMU) データベースとは、実世界のある側面をモデル化した、秩序 だった、相互に関連したデータの集まり DBMS • データベース管理システム(DBMS)は、データベースを管理するソフトウェア ◦ 例:MySQL, Oracle Database, SQLite, MongoDB • DBMSの目的は、アプリケーションが簡単にデータベースにデー

                                    SQL Training 2021
                                  • RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!|ハイクラス転職・求人情報サイト アンビ(AMBI)

                                    ハイクラス求人TOPIT記事一覧RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! 安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。 こんにちは。キャディ株式会社バックエンドエンジニアの松田と申します。 キャディ株式会社では、「モノづくり産業のポテンシャルを解放する」をミッションとして、製造業分野に関連するさまざまなソフトウェアの開発を行っています。また、そのための主要な開発言語としてRustを採用

                                      RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!|ハイクラス転職・求人情報サイト アンビ(AMBI)
                                    • 「Postgres で試した?」と聞き返せるようになるまでもしくはなぜ私は雰囲気で技術を語るのか? — Just use Postgres 読書感想文 - じゃあ、おうちで学べる

                                      はじめに 「Just use Postgres」という言葉を初めて聞いたのは、いつだったか覚えていません。Twitter か Hacker News か、あるいは社内の Slack か。どこで聞いたにせよ、私の反応は決まっていました。「また極端なことを言う人がいる」と。 「それ、〇〇でもできますよ」——この手のフレーズはもう100回は聞いてきました。そして大抵の場合、その〇〇は専用ツールに置き換えられていきます。技術が専門分化していくのは自然な流れです。 全文検索なら Elasticsearch。時系列データなら InfluxDB。メッセージキューなら RabbitMQ。それぞれの分野に専門家がいて、専用のソリューションがあって、ベストプラクティスがあります。「とりあえず Postgres で」なんて、それは思考停止ではないか、と。でも、心のどこかで気になっていたんです。 www.mann

                                        「Postgres で試した?」と聞き返せるようになるまでもしくはなぜ私は雰囲気で技術を語るのか? — Just use Postgres 読書感想文 - じゃあ、おうちで学べる
                                      • 【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい

                                        はじめに 対象イベント 読み方、使い方 Remote Code Execution(RCE) 親ディレクトリ指定によるopen_basedirのバイパス PHP-FPMのTCPソケット接続によるopen_basedirとdisable_functionsのバイパス JavaのRuntime.execでシェルを実行 Cross-Site Scripting(XSS) nginx環境でHTTPステータスコードが操作できる場合にCSPヘッダーを無効化 GoogleのClosureLibraryサニタイザーのXSS脆弱性 WebのProxy機能を介したService Workerの登録 括弧を使わないXSS /記号を使用せずに遷移先URLを指定 SOME(Same Origin Method Execution)を利用してdocument.writeを順次実行 SQL Injection MySQ

                                          【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい
                                        • Deno入門 ─ 新しいTypeScript/JavaScript実行環境でWebアプリ開発とデータベース接続の基本を体験しよう|ハイクラス転職・求人情報サイト アンビ(AMBI)

                                          例えばmain.tsというスクリプトに対して、ファイルの読み取りだけを許可したい場合は、以下のようにコマンドを実行します。 $ deno run --allow-read main.ts このときmain.tsプログラムはファイルの読み取りだけが可能になるため、ファイルの書き込みやネットワークアクセスをするとPermissionErrorによる実行時エラーになります。 なお、実行時にフラグを何も与えなければ、どの権限も持っていない状態になります。 各フラグにはパラメータを指定でき、例えば次のように実行すると/home/userディレクトリの読み込みだけが許可されます(--allow-writeフラグも同様)。 $ deno run --allow-read=/home/user main.ts また、--allow-netを次のように指定すると、特定のドメインとポートだけのアクセスを許可で

                                            Deno入門 ─ 新しいTypeScript/JavaScript実行環境でWebアプリ開発とデータベース接続の基本を体験しよう|ハイクラス転職・求人情報サイト アンビ(AMBI)
                                          • Rails vs Node.js

                                            Previous slideNext slideToggle fullscreenOpen presenter view Rails vs Node.js 最終章 「Prisma」 @mizchi Cloudflare Meetup 2024/10/02 今日の Prisma + Cloudflare の様子 About https://x.com/mizchi Node.js とフロントエンドの専門家 100万円*達成率で御社のフロントエンドの高速化をやります 前書き フロントエンド/Node.js 視点のポジショントークです Railsに対するチャレンジャーとして Node.js を使ってきた話 Rubyの開発者やRubyのユーザーを否定する意図はありませんが、好き嫌いは否定しません。型が好きです 「Rails」は 2010年前後に流行っていた任意なWAFに置き換え可能 Symfony

                                            • OracleからPostgreSQLに乗り換えたい人に送る何か - なからなLife

                                              Calendar for PostgreSQL | Advent Calendar 2021 - Qiita の10日目の記事です。 思い当たる節がある人は、今の見積もりの数倍の時間と予算を確保してからキックオフして欲しい。 多分、そのまま走ると誰か倒れるから。。。 で終わりにするわけにはいかないので、いくつか書きます。 もちろん、SQLがDBMSによって「方言」があるので、使える構文、関数名が違うってのは当然あるのですが、それ以外のところを中心に。 PostgreSQLのサーバーサイドエンコーディングはShiftJISをサポートしていない 今どき、新規で立てるデータベースはUTF8を選ぶよねーキャハハ、と思っても、何世代もバージョンアップしてきたOracleや、塩漬けされたOracleなんかは、ShiftJISを使っているところも多いのではないでしょうか。 自分で文字コードマッピングの処

                                                OracleからPostgreSQLに乗り換えたい人に送る何か - なからなLife
                                              • PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能

                                                PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能 WebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgres-WASM」がオープンソースで公開されました。 Today we're open sourcing postgres-wasm with our friends at @_snaplet Discover how we built it, and the extra features we've added: https://t.co/6kmfXBBhCS#postgres #wasm #opensource — Supabase (@supabase) October 3,

                                                  PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能
                                                • FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト アンビ(AMBI)

                                                  FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ PythonのWebフレームワークとしていま注目を集めるFastAPIは、シンプルにコードが書けるだけでなく、パフォーマンスが高いWebアプリケーションのバックエンドサーバーが構築可能です。同フレームワークの勘所をPythonスペシャリストの杜世橋さんが、初心者向けのハンズオン、そしてより実践的な画像への自動タグ付けサービス実装をとおして解説します。 FastAPIはいま非常に注目されているPythonのWebフレームワークの1つです。Flaskのようにシンプルに書ける一方でPythonのType Hintの機能をうまく活用し、HTTPのリクエスト/レスポンスをPythonの関数の引数/戻り値とシームレスにマッピングして非常に効率的に開発ができるのが最大の特徴です。非同期処理にも対応していてその名

                                                    FastAPI入門 - モダンなPythonフレームワークの特性をチュートリアルで手軽に学ぶ|ハイクラス転職・求人情報サイト アンビ(AMBI)
                                                  • Cloud FirestoreからPostgreSQLへ移行したお話 - ZOZO TECH BLOG

                                                    はじめに こんにちは。ブランドソリューション開発本部FAANSバックエンドブロックの田村です。普段はサーバサイドエンジニアとしてFAANSのバックエンドシステムの開発をしています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗のショップスタッフの販売サポートツールです。FAANSでは、データベースとしてGCPのサーバレスでドキュメント指向のNoSQLデータベースであるCloud Firestoreを当初採用していました。Cloud Firestoreはサーバレスなので運用負荷が掛からず、また安価でスケーラビリティにも優れたハイパフォーマンスなデータベースです。 しかし、Cloud Firestoreを使用して開発・運用していく中で直面した様々な課題からGCPのフルマネージドのリレーショナルデータベースであるCloud SQLのPostgreSQLにデータベースのリプ

                                                      Cloud FirestoreからPostgreSQLへ移行したお話 - ZOZO TECH BLOG
                                                    • Apache Iceberg とは何か - Bering Note – formerly 流沙河鎮

                                                      はじめに 概要 Apache Iceberg(アイスバーグ)とは [重要] Icebergの本質はテーブル仕様である Table Spec バージョン Icebergハンズオン Icebergの特徴 同時書き込み時の整合性担保 読み取り一貫性、Time Travelクエリ、Rollback Schema Evolution Hidden Partitioning Hidden Partitioningの種類 時間 truncate[W] bucket[N] Partition Evolution Sort Order Evolution クエリ性能の最適化 ユースケース Icebergのアーキテクチャ Iceberg Catalog Iceberg Catalogの選択肢 metadata layer metadata files manifest lists manifest files

                                                        Apache Iceberg とは何か - Bering Note – formerly 流沙河鎮
                                                      • マルチテナントSaaSのテナント分離をRow-Level Securityに移行した - Sansan Tech Blog

                                                        こんにちは、クラウド請求書受領サービス「Bill One」の開発に携わっているソフトウェアエンジニアの加藤です。Bill OneはB2BのマルチテナントSaaSであり、データベースとして Cloud SQL 上のPostgreSQLを利用しています。従来はマルチテナントのデータを分離するために、テナントごとにPostgreSQLのスキーマを分けていましたが、2020年12月にRow-Level Securty(行レベルセキュリティ。以降RLSと表記)による分離に移行しました。 本稿では、移行の背景とRLS組み込みにあたって考慮したポイントをご紹介します。 マルチテナントSaaSのテナント分離 マルチテナントSaaSにおけるテナント分離方法はいくつか知られており、大きく次の3つに分けられます。 アプリケーションの実行環境ごと完全に分離する データベースのみをインスタンスやスキーマで分離する

                                                          マルチテナントSaaSのテナント分離をRow-Level Securityに移行した - Sansan Tech Blog
                                                        • DB初心者が自作DBMS始めてみた - Qiita

                                                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は DeNA 24 新卒 Advent Calendar 2023 の 23 日目の記事です。 TL;DR DBMSの基本的な仕組みを知るのに有益だったリソース CMUのDBMS講義 先人の素晴らしい自作DBMSの解説記事&ソースコードリーディング 小さな小さな自作DBMSの設計と実装 最小限SELECTやINSERTなど基本的なSQLが動く この記事のゴール データベースの内部構成を超ざっくり理解するために有用なリソースを知り、そして(全開発者のロマンである)自作 DBMS に一歩踏み出すきっかけになればうれしいです。 モチベ

                                                            DB初心者が自作DBMS始めてみた - Qiita
                                                          • Rust で SQLite を再実装している - kawasin73のブログ

                                                            セキュリティを盾に一点突破。どうもかわしんです。最近 Rust で SQLite を実装してます。 以前の記事で HTTP Parser を Rust で実装しようとしたものの、すでに実装されていたので断念しましたが、いい題材を見つけました。SQLite です。開発中のリポジトリはこれです。 github.com 今の時点では、Read Only で1つの WHERE 句を持った SELECT 文しか処理できないですが、以下の機能を実装しています。 sqlite3 で生成された database ファイルの読み取り (cursor.rs, btree.rs, record.rs) SQL 文の解析 (token.rs, parser.rs) テーブルとインデックスのメタデータのパース (schema.rs) 動的なファイルの読み込み (pager.rs) SQL クエリとスキーマ情報を元に

                                                              Rust で SQLite を再実装している - kawasin73のブログ
                                                            • DuckDB で日本語全文検索

                                                              DuckDB-VSS と PLaMo-Embedding-1B を利用することで、ベクトル検索を実現できますが、DuckDB-FTS (Full-Text Search) と形態素解析ライブラリである Lindera を組み合わせて日本語全文検索を実現できます。 DuckDB-FTS + LinderaDuckDB の全文検索拡張は日本語には対応していないないのですが、スペース区切りでトークン化することで、日本語の全文検索を利用する事が出来ます。トークン化には Meilisearch にも利用されている信頼と安心の Lindera を利用することにしました。 今回この参考コードを Lindera の作者であり検索の専門家でもある Minoru OSUKA 氏にレビューいただきました。本当にありがとうございます。 以下は参考コードです。 [project] name = "duckdb-ft

                                                                DuckDB で日本語全文検索
                                                              • Rust で SQLite を再実装した 2023 - kawasin73のブログ

                                                                気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 Rust で SQLite をフルスクラッチで実装しています。 github.com なぜ SQLite を Rust で再実装しようと思ったのかについては以前の記事で紹介しています。一言で言えば、誰も Rust で SQLite を書いている人がいなかったからやってみたのですが、そもそも SQLite が強すぎるということが再実装しているうちにわかってきて絶望しています。 kawasin73.hatenablog.com 4 ヶ月前にこの記事を書いたときは簡単な SELECT 文しか実行できなかったのですが、現時点では SELECT, INSERT, DELETE 文をサポートし、express

                                                                  Rust で SQLite を再実装した 2023 - kawasin73のブログ
                                                                • ここがつらいよ分散型SQLデータベース.pptx

                                                                  ここがつらいよ分散SQLデータベース Yoshitaka Koitabashi Sr. Solution Architect PingCAP株式会社 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_e 自己紹介 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_e Yoshitaka KOITABASHI PingCAP株式会社 Sr. Solution Architect 💙 Database / Serverless / Container ● PingCAPとは? ● 分散型SQLデータベース ● TiDBの裏側 (アーキテクチャ/MVCC/分散トランザクション/Raft/ etc...) ● 実際の運用現場で直面する課題 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_

                                                                  • MySQLとOracleの実行計画を比較してみた - ASMのきもち

                                                                    まいえすきゅーえりたい ぽすぐれない おらくるってる(狂ってる)tomoです。 今日はいつものMySQLリファレンスを読むではなく、夏休みの宿題にしていたこれをやってみます。 MySQLとOracleDBの実行計画を比較してみた さて同じようなテーブルで同じデータを載せて。 実行計画を取ってみた時、どのくらい情報量が違うのか簡単に違いを見てみましょう。 前提として、以下をご認識ください。 一方はOSSのDBエンジン、もう一方はガチガチ商用DBエンジンです。情報量が違うのは当たり前であって、良し悪しを比較したいのではありません。そして製品比較をしたいのではありません。いつも商用DBメインで使っているエンジニアが、OSSのDBにこうゆう情報も出してほしいな!というのをお願いしたいと思っていて、それを考える元ネタメモだと思ってください。 OSSでこれだけの情報出せるMySQLや、今回紹介しません

                                                                      MySQLとOracleの実行計画を比較してみた - ASMのきもち
                                                                    • PostgreSQL チューニングよもやま話 - エムスリーテックブログ

                                                                      【Unit4 ブログリレー3日目】 こんにちは,エムスリーエンジニアリンググループの榎田です.数学とテレビゲームが好きです. 今回は,Unit4 で運用している "Docpedia" というサービスで実施した SQL チューニングの実例を2つご紹介します.普段の私が意識していなかった, RDBMS の内部機構に関する話が登場して面白かったので,今回の記事を書きました. なお,本稿で扱う議論はすべて PostgreSQL 11.x 以上を対象としており,特にその他の RDBMS で同様の動作をするかは確認していません.定性的な挙動に共通するものはあるかもしれませんが,ここで述べた話はそのままは通らないであろうことをお断りさせてください*1. プロダクトについて index なしで意外と耐えたが,耐えきれなかった話 実際の SQL とテーブル定義 原因の分析 対応策 SELECT DISTIN

                                                                        PostgreSQL チューニングよもやま話 - エムスリーテックブログ
                                                                      • PythonでDDDやってみた💪 - techtekt

                                                                        はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                                                                          PythonでDDDやってみた💪 - techtekt
                                                                        • Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部

                                                                          2023.01.11 Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい 追記:この記事で紹介している現象は、新しいバージョンのAurora MySQLでは修正されているようです。本記事では3.02.2を対象にしている点にご注意ください。 Amazon Aurora MySQLでテーブルの再構築を伴う操作を行うと,Readerインスタンスで瞬間的に対象のテーブルが見えなくなる場合があるので,オペレーションの実行タイミングに気をけましょう,というお話です。再構築を伴う操作には,一部のALTER TABLEやOPTIMIZE TABLEが含まれます。 こんにちは,S.T.です。Amazon Aurora MySQLで少し気になる現象を見かけたので紹介します。この現象を知っていれば回避できるので,クリティカルな影響があるということではないですが,

                                                                            Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部
                                                                          • MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話

                                                                            「Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました」でちゃんと触れられてないので今更ながら key_len について補足します。発表で触れた内容については言及しないので、storage engine や B+ tree といった用語がよくわからない方は発表内容を参照してください。 なお、MySQL のバージョンは 5.7.38 です。 mysql> SELECT @@version; +-----------+ | @@version | +-----------+ | 5.7.38 | +-----------+ 1 row in set (0.00 sec) 事前準備 sample-data-railsdm-2018 の orders テーブルを少しいじって、キャンセル時刻(canceled_at)、配送予定時刻(deliv

                                                                              MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話
                                                                            • ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) : ISUCON公式Blog

                                                                              ISUCONとはLINEヤフー株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) こんにちは、面白法人カヤックのacidlemonです。例年ISUCONに参加するたびにとても長い「やったこと」ブログを書いているので、もしかしたらそちらを読んだことがある人もいるかもしれません。 ISUCONの公式サイトに記事を書くのは ISUCON3の予選の解説 以来でしょうか。今回もacidlemonが解説、fujiwaraが講評を書く予定ですので、お楽しみに。あ、そういえば先日掲載していただいた 面白法人カヤックからの応援メッセージ の脳内インタビューも私が書いていますのでよく考えたらそれ以来ということになるのかもしれません。予選

                                                                                ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) : ISUCON公式Blog
                                                                              • タイミーで蓄積された Aurora MySQL 運用ナレッジ─ 障害・チューニング・実践知を特別公開 - Timee Product Team Blog

                                                                                はじめに タイミーで SRE 業務を担当している徳富(@yannKazu1)です。 日々、数千万件のデータと向き合う中で、Aurora MySQL の運用をより良くするための改善を積み重ねています。 本記事では、その中で経験してきた “机上ではわからないリアルな気づきや学び” を、できるだけ具体的にまとめました。 これから Aurora を本気で運用したい方や、同じような課題に悩んでいる方のヒントになれば嬉しいです。 (この記事はTimee Product Advent Calendar 2025の3日目の記事です。) 1. オンラインDDLでも「ゼロロック」ではない ─ ALTER TABLE 実行時の落とし穴 「MySQL のオンラインDDLなら、日中でもサッと ALTER できるよね?」 ──そんなふうに思ってしまうこと、ありますよね。 たしかにオンラインDDLはとても便利で、データ

                                                                                  タイミーで蓄積された Aurora MySQL 運用ナレッジ─ 障害・チューニング・実践知を特別公開 - Timee Product Team Blog
                                                                                • ブラウザで動作する地理空間データ処理ライブラリとして DuckDB-wasm を使い、 SQL を TypeScript で管理する仕組みを作る - newmo 技術ブログ

                                                                                  newmo では、地図データや地理情報を扱う場面が多くあります。 たとえば、タクシーやライドシェアでは、営業区域のような営業していいエリアといった地理的な定義があります。 また、乗り入れ禁止区域のようなタクシーが乗り入れてはいけないエリアといった定義も必要になります。 これらの地理に関する定義は GeoJSON のような地理情報を扱うデータ形式で管理されることが多いです。 しかし、GeoJSONなどの定義をテキストとして手書きするのは困難です。 そのため、地図上に区域を作図するエディタやその定義した区域が正しいかをチェックするような管理ツールが必要です。 管理ツールは、ウェブアプリケーションとして作った方が利用できる環境が広がります。 このような地理情報は一度に扱うデータが多かったり、空間的な計算処理が必要になるため、専用の仕組みを使うことが多いです。 このような技術を、地理情報システム(

                                                                                    ブラウザで動作する地理空間データ処理ライブラリとして DuckDB-wasm を使い、 SQL を TypeScript で管理する仕組みを作る - newmo 技術ブログ