並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

postgresqlの検索結果1 - 40 件 / 40件

  • サブクエリの書き方を2万文字弱かけてすべて解説する

    これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

      サブクエリの書き方を2万文字弱かけてすべて解説する
    • SQL滅ぶべし | ドクセル

      SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012)

        SQL滅ぶべし | ドクセル
      • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

        切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React

          自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
        • もう人間がクエリを書く時代じゃない!SQLクエリの組み立てを自動化するSlack botを開発・導入しました - Pepabo Tech Portal

          こんにちは。SUZURI事業部の@kromiiiと申します。 私のメインの業務はWebアプリケーションの開発ですが、大学院時代のスキルを活かして並行してデータ分析業務も行っています。 データ分析業務ではデータベースのクエリを書くことが多いのですが、私自身SUZURI事業部に配属されたばかりで、テーブルの名前やリレーションを覚えるのが大変でした。そこでクエリの設計を自動化するツールをSlackに導入しました。 その名も tbls-ask bot です。どのようなものか先に見てみましょう。 ユーザーはSlackでメンションする形で、どのようなクエリを実行したいのか自然言語で入力します。 メンションされるとSlack botが起動し、どのDBスキーマを利用するかを尋ねます。 ユーザーがDBスキーマを選択すると、自然言語からSQLクエリを生成し、Slackに返答します。 今回はパブリックに公開する

            もう人間がクエリを書く時代じゃない!SQLクエリの組み立てを自動化するSlack botを開発・導入しました - Pepabo Tech Portal
          • SQLは滅ぶべきか|ミック

            でかい釣り針が来たので釣られてみる。とりあえず以下の資料を読んでいただきたい。そんなに長くないのでサクッと読める。 SQLの記述順序と思考の順序が違うので書きにくいし、エディタの補完機能の恩恵が受けられないのが嫌だ、という意見はもう大昔からある。何度も何度も何度も繰り返されてきた議論である。以下の2011年のスレッドでも「SQLはFROM句が最初に来るべきではないか?」という問いが提起されている。すぐに出てこないが、筆者はこれより古い文書も見た記憶がある。

              SQLは滅ぶべきか|ミック
            • DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab

              こんにちは!サイオステクノロジーの安藤 浩です。DB設計書の生成が容易にできるDBMLをご紹介します。DBMLの入門として、DBMLの書き方、ER図生成方法、Github actionsでCIを実行して閲覧する方法をご紹介させていただきます。 DBMLとは DBML は DataBase Markup Language の略でDB構造を定義するために設計された言語です。 DB構造に焦点を当てており、可読性の高い言語です。 dbdiagram.io や dbdocs.io などを利用することでDBドキュメントの生成が可能です。 コードベースで図を生成できる点でPlantUMLと似ていますね。 DBMLの書き方 テーブルの書き方 まずはテーブルの定義の例をもとにDBMLの記法を紹介していきます。users というテーブルを作成してみます。コードは以下のようになります。 Table users

                DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab
              • WEBアプリケーション開発者です。 特別セキュリティのスペシャリストになりたいというわけでないですが、アプリケーション開発者として徳丸本に記載されている内容レベルのセキュリティ知識はあります。 システムのセキュリティに関してはベンダーの脆弱性診断を通して運用しており、個人的にはセキュリティに関して何か困ったことがいままでありません。 ただ、ふと考えてみると「情報漏洩やサイバー攻撃が発生した際などの有事にどのような行動をとるべきか」という観点ではあまり自信がないなと感じました。社内でもそのような場合の指針が

                WEBアプリケーション開発者です。 特別セキュリティのスペシャリストになりたいというわけでないですが、アプリケーション開発者として徳丸本に記載されている内容レベルのセキュリティ知識はあります。 システムのセキュリティに関してはベンダーの脆弱性診断を通して運用しており、個人的にはセキュリティに関して何か困ったことがいままでありません。 ただ、ふと考えてみると「情報漏洩やサイバー攻撃が発生した際などの有事にどのような行動をとるべきか」という観点ではあまり自信がないなと感じました。社内でもそのような場合の指針が整っているわけではないです。 徳丸先生は、一般的な開発者には最低限どのレベルのセキュリティ知識を求められていますか? 回答の難しい質問ですが、ここは本音をさらけ出したいと思います。 私が「安全なWebアプリケーションの作り方(通称徳丸本)」を出したのが2011年3月でして、それから13年以

                  WEBアプリケーション開発者です。 特別セキュリティのスペシャリストになりたいというわけでないですが、アプリケーション開発者として徳丸本に記載されている内容レベルのセキュリティ知識はあります。 システムのセキュリティに関してはベンダーの脆弱性診断を通して運用しており、個人的にはセキュリティに関して何か困ったことがいままでありません。 ただ、ふと考えてみると「情報漏洩やサイバー攻撃が発生した際などの有事にどのような行動をとるべきか」という観点ではあまり自信がないなと感じました。社内でもそのような場合の指針が
                • 存在するはなぜ二階の述語なのか|ミック

                  拙著『達人に学ぶ SQL徹底指南書』の中で、EXISTS述語の使い方を解説している章があるのだが、そこでEXISTS述語だけが唯一SQLの中で二階の述語である、ということを説明している。これはEXISTS述語だけが行の集合を引数にとる述語だからである。それは分かるのだが、なぜ述語論理を考えた人(具体的にはゴットロープ・フレーゲ。タイトル画像のおじさんである)はこんな着想を得たのか、そこが分かりにくいという質問をしばしば受けることがある。確かに、数ある述語の中でなぜ「存在する」だけが二階の述語であるのか、というは直観的にすこし分かりにくい。なぜフレーゲはこんなことを考えたのだろう? この点について、述語論理の創始者でもあるフレーゲの議論を参照しながらかみ砕いて見ていきたいと思う。かなり理論的かつ哲学的な話になるので、興味ない方は読み飛ばしてもらってかまわない。とくにSQLの理解に支障のある話

                    存在するはなぜ二階の述語なのか|ミック
                  • Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena

                    ま、このくらい知っておいてもらわないと&とりあえずこんだけ知ってればだいたいの処理が書けるクラス・インタフェースをまとめてみました。2024年版。 詳しく知りたい人は「プロになるJava」を! java.lang.Class java.lang.Exception <- new java.lang.Integer java.lang.Object <- new java.lang.Runnable java.lang.String java.lang.System java.lang.Thread java.nio.file.Files <- new java.nio.file.Path <- new java.io.InputStream java.io.InputStreamReader java.io.BufferedReader java.io.OutputStream java.

                      Javaで最低限おさえておいてほしいクラス・インタフェース35 - 2024年版 - きしだのHatena
                    • クエリのパフォーマンスチューニングの第一歩。実行計画や統計情報について入門する

                      SQL実行の流れ まずはSQLがどのような流れで実行されるのかを見ていきます。 SQL実行の流れは大まかに捉えると以下のようになります。 パーサ パーサでは、ユーザーから送信されたクエリを受け取り、その文法的な正確さを検証します。SQLクエリが正しくフォーマットされているか、必要な構文要素が全て含まれているかをチェックし、例えばFROM句で指定されたテーブルが存在するかどうかも確認します。 文法的なエラーがある場合、例えばカンマの欠落や存在しないテーブルの参照など、クエリはエラーとして返されます。 エラーがない場合は、クエリは「抽象構文木」というデータ構造に変換されます。これにより、データベースはクエリをより効率的に解析し、次の処理ステップに進めることができます。 オプティマイザ SQLクエリがパーサを通過した後、次にクエリの最適化を行うのが「オプティマイザ」です。オプティマイザの主な役割

                        クエリのパフォーマンスチューニングの第一歩。実行計画や統計情報について入門する
                      • なぜSQLiteはバイトコードを使うのか

                        以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

                          なぜSQLiteはバイトコードを使うのか
                        • LLMをWebフレームワークにしたら、未来が見えた #2024

                          最近、LLMにWeb Backendを書かせて遊ぶ、Hanabiというサービスを作っています。その開発過程で、前に試したLLMをAPIとして振る舞わせるアプローチを再検討したので、記事としてまとめました。 一年ちょっと前、私はChatGPTをWebフレームワークにしようと試みました...が、残念ながら全く実用的ではありませんでした。しかし、あれから一年、LLMは目覚ましい進歩で進化を遂げました。価格は下がり、速度も上がり、記憶容量の増加やRAGの発展など、もはや別物レベルで進化しています。 いまならもうちょっと実用的なヤツが作れるんじゃねってことで、色々な手法を面白がった再検討したまとめです。 余談ですが、一年前はLLM=ChatGPTという状況でしたね...懐かしい。ちょうどvicuna13Bが出た頃ですかね? ↓去年の記事(できれば読んでほしい)↓ 出来たもの 全部プロンプトに入れちゃ

                            LLMをWebフレームワークにしたら、未来が見えた #2024
                          • RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)

                            結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd

                              RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)
                            • データ基盤のためのリーダブルSQL

                              これは何? 私tenajimaがデータ基盤のパイプラインを作るとき、レビューするときに意識している点を言語化したものです データ基盤を作る上での考え方の一つに役立てていただければ幸いです この記事の前提 dbtを使ったデータ基盤構築を念頭に置いて書いています、dbtの記法が出てきます CTEsが使える環境を想定しています 記事内でデータエンジニアもアナリティクスエンジニアも総称してデータエンジニアと呼んでいます データ基盤を「使う側」のクエリと「作る側」のクエリの違い 最近ではファーストキャリアからデータエンジニアの方も出てきているかもしれませんが、データサイエンティスト、アナリスト、ソフトウェアエンジニアを経験してデータエンジニアを行っている人が一般的と考えています。 特にデータサイエンティスト、アナリストからデータエンジニアへの転向は私の周りでは多いように感じており、その方達は(過去の

                                データ基盤のためのリーダブルSQL
                              • 運用終了したページがSQLインジェクション攻撃を受けた事案についてまとめてみた - piyolog

                                2024年5月24日、積水ハウスは同社が運用する住宅購入者向けの会員制Webサイトがサイバー攻撃を受け、顧客情報などが流出したと公表しました。ここでは関連する情報をまとめます。 被害ページは運用終了から13年公開継続 不正アクセスの被害にあったのは、積水ハウスが戸建てやマンションの住宅購入者向けに提供している会員制サイト「積水ハウスNetオーナーズクラブ」。同サイト上で過去に使用していたページが残っており、このページが攻撃を受け登録者の情報などが流出した。 攻撃を受けたページは2008年から2011年の4年間、フォトギャラリーとして使用していたもの。当該ページの状況について、同社の広報担当者は当該ページへの動線は存在しないこと、検索エンジンにも引っかからないことより、URLを直接入力しないと接続できない状況にあったと取材に説明。アクセス自体が可能な状態と認識はあったが、使用していないことか

                                  運用終了したページがSQLインジェクション攻撃を受けた事案についてまとめてみた - piyolog
                                • 「脱 Oracle」 速習ガイド (PostgreSQL 11〜15 対応版)

                                  はじめに 本ガイドの目的と対象読者 本ガイドは Oracle から PostgreSQL へのデータベース移行リファレンスである。移行に要する工数の算定を容易化することを目的として、考慮すべき非互換情報をシンプルかつ具体的に整理してある。「脱 Oracle」を推進するマネジャーやリーダーのみならず、すべてのメンバーにとって必携のガイドとなることを目指した。本ガイドの情報の多くはインターネット上に公開されているが、それらが体系的、一元的に、かつ最新の PostgreSQL に対応しているものが見当たらなかった(2023年3月12日現在)。そのため、読者の便宜を図る点において本ガイドの果たす役割は大きいと考えている。 本ガイドの前提 本ガイドの内容は下記のデータベース間の移行を前提に記載してある。 移行元データベース

                                    「脱 Oracle」 速習ガイド (PostgreSQL 11〜15 対応版)
                                  • Aurora MySQLのメモリ不足の原因を特定する

                                    シンプルフォーム株式会社でインフラエンジニアをしている守屋です。 本記事では Aurora MySQL の OOM(メモリ不足)エラーについて、原因となるクエリを特定するために役立つ Tips を弊社での実例を交えてご紹介します。 発端 突如 Slack に鳴り響く不吉な通知。 「パターン青!障害です!!」 どうやら本番環境の Aurora クラスターがフェイルオーバーしてアプリケーションが DB コネクションエラーを引き起こした模様です。幸いインスタンスは冗長化していて Aurora のフェイルオーバーは高速であるため、ユーザー目線では瞬断が発生した程度の比較的影響が小さめな障害に留まりました。しかしインフラエンジニアとしては捨ておけない状況です!早速原因の調査を始めました。 フェイルオーバーの原因 結論から言うとメモリ使用量がスパイクして OOM エラーが発生したことが原因でした。根拠

                                      Aurora MySQLのメモリ不足の原因を特定する
                                    • Amazon RDS ブルー/グリーンデプロイを利用してMySQLのアップグレードをした話 - Pepabo Tech Portal

                                      こんにちは。技術部プラットフォームグループのharukinです。 この記事では、私たちが提供するネットショップ作成・運用のためのECプラットフォーム「カラーミーショップ」のデータベースを、Amazon RDSのブルー/グリーンデプロイを利用し、MySQLのバージョン5.7.38から8.0.35へアップグレードした経験についてご紹介します。カラーミーショップにおいてはこれが初の試みでした。Amazon RDS固有のファーストタッチレイテンシーの解除方法や、ダウンタイム時間の計測についてもお伝えします。 Amazon RDSのブルー/グリーンデプロイを活用するメリットは、本番環境に準ずるステージング環境を構築し事前検証が可能であることです。ステージング環境は約1分で本番環境に昇格させることができ、昇格時に許容ダウンタイムを超えたり、レプリケーションやインスタンスの問題が生じた場合は、自動的にプ

                                        Amazon RDS ブルー/グリーンデプロイを利用してMySQLのアップグレードをした話 - Pepabo Tech Portal
                                      • MySQL 8.4 LTS登場!!

                                        記事を書くのが遅くなってしまったが、先日MySQL 8.4シリーズが登場したので紹介をしておこうと思う。新機能の解説については機会を改めて書くとして、今回は主にアップグレードにまつわる重要なポイントを書き記しておく。 LTS = Long Term Support 以前の記事でも紹介した通り、MySQL 8.4はLTS = Long Term Supportのバージョンとなっている。長期間サポートするために互換性を最大限保証するバージョンである。前のメジャーバージョンであるMySQL 8.0シリーズのように、シリーズの途中で互換性が破壊されるような変更が入ることは基本的に無い。「バグ修正のためにどうしても仕様を変えなければならない」というような事態が生じる可能性はゼロではない。なので絶対に互換性が保たれるとは言い切れないところであるが、基本的には仕様変更はない方向で今後リリースされていくこ

                                          MySQL 8.4 LTS登場!!
                                        • Snowflake の Copilot が優秀すぎる件について

                                          マーケティングテクノロジーの情報やノウハウ・TIPS、エクスチュア社の情報を発信。【ブログネタ募集】ご興味のある分野を教えてください!ご要望の内容を記事に起こします!メニューの「ブログへの」リクエストよりお送りください。 menu こんにちは、喜田です。 いままでSnowflakeのライトユーザーで一部機能だけに特化して触っている状態でしたが、最近はData Superheroes 2024になったこともあり、いままで関わりの薄かった製品領域も調査したり、海外リージョンでしか出ていないプレビューを触ったりしています。 そのうちの一つがCopilotで、いまは北米など一部リージョンでのみパブリックプレビュー中の、Snowflakeコード開発が一段と捗るAIおしゃべり機能です。 この右側のパネルがCopilotとのチャット。出力が多くてチャットっぽくないですが、上から会話が続いております。 C

                                            Snowflake の Copilot が優秀すぎる件について
                                          • DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog

                                            tl;dr はじめに DuckDB とは DuckDB では何が読めるのか 使ってみる S3 上のJSON を読んでみる リレーショナルデータベース 他ツールではなく DuckDB を使うメリット しくじりポイント (特にリリースされたばかりの)バージョンには気をつける S3 のオブジェクト数が多い場合不都合がありがち スレッドの調整が必要な場合も Redshift には未対応 終わりに 付録 MySQL のデータを読み込む例の MySQL 側の準備 tl;dr DuckDB 便利だよ。分析以外でも使えるよ 色々な場所のデータを閲覧・結合できるよ。標準SQLも使えるよ ただし、細かい落とし穴は色々あるので気をつけてね はじめに2023年4月にデータエンジニアとして入社したmin(@not_rogue)です。暖かくなるにつれ、YouTube で見た南伊豆ロングトレイル | 松崎町に行く機運が

                                              DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog
                                            • [小ネタ] SQLの GROUP BY / ORDER BY には数字 (1, 2...) を指定しよう - Qiita

                                              -------------------------------------------------------- -- users テーブルについて、部署・役職・作成日ごとに件数を集計する -- (MySQL用) -------------------------------------------------------- SELECT u.department_code `部署コード`, u.role_code `役職コード`, DATE_FORMAT(u.created_at, '%Y-%m-%d') `作成日`, COUNT(*) `人数` FROM users u GROUP BY u.department_code, u.role_code, DATE_FORMAT(u.created_at, '%Y-%m-%d') ORDER BY u.department_code ASC

                                                [小ネタ] SQLの GROUP BY / ORDER BY には数字 (1, 2...) を指定しよう - Qiita
                                              • pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog

                                                概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは本質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 本記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケース毎に DB を簡単に初期化しつつ、テストケース毎の前提データ登録も簡単うことでテスト開発体験を向上させる方法を紹介します。 前提環境 本記事では、以下の環境を前提として説明いたします。 python

                                                  pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog
                                                • Amazon Aurora MySQL バージョン 2 (MySQL 5.7 互換) からバージョン 3 (MySQL 8.0 互換) へのアップグレードのチェックリスト、パート 1 | Amazon Web Services

                                                  Amazon Web Services ブログ Amazon Aurora MySQL バージョン 2 (MySQL 5.7 互換) からバージョン 3 (MySQL 8.0 互換) へのアップグレードのチェックリスト、パート 1 本記事は、Amazon Aurora MySQL version 2 (with MySQL 5.7 compatibility) to version 3 (with MySQL 8.0 compatibility) upgrade checklist, Part 1 を翻訳したものです。 Amazon Aurora MySQL 互換エディション バージョン 2 (MySQL 5.7 互換)は 2024 年 10 月 31 日に標準サポートの終了が予定されています。Amazon Aurora MySQL バージョン 2 の標準サポートの終了タイムラインについて

                                                    Amazon Aurora MySQL バージョン 2 (MySQL 5.7 互換) からバージョン 3 (MySQL 8.0 互換) へのアップグレードのチェックリスト、パート 1 | Amazon Web Services
                                                  • [Software Design連動企画] 実践クエリチューニング | gihyo.jp

                                                    この記事は、『Software Design 2024年6月号』(2024年5月17日発売)の第1特集「SQLチューニングする前に知っておきたい 実行計画&インデックスのしくみ」の連動企画です。ぜひ本誌特集1もお読みください。 適切なインデックスを設計する インデックスの調整によるクエリの高速化は、RDBMSを使用する際の数あるチューニングテクニックの中でも最もお手軽なものです。テーブルのカラムの定義を変えるわけではないので、クエリの結果に違いが生じず、アプリケーションを変更する必要性がないからです。適切なインデックスを付与するだけでチューニングが済むというのは極めて効率的です。それでは適切なインデックスとはどのようなものでしょうか。本記事では、まずインデックスを設計する際に重要なポイントを解説します。 インデックスとSQL構文 「どのカラムの組み合わせに対してインデックスを作成すべきか」

                                                      [Software Design連動企画] 実践クエリチューニング | gihyo.jp
                                                    • 全社データ活用基盤をTreasureDataからBigQueryへ移行しました - Leverages データ戦略ブログ

                                                      はじめに こんにちは。データエンジニアリンググループの森下です。今回は、私がプロジェクトマネージャーとして約3年間かけて実施した、TreasureDataからBigQueryへの全社データ活用基盤移行プロジェクトについてお話します。このプロジェクトは、全社で1日あたり数千件のクエリが実行されるデータ基盤を移行するという大規模なもので、関係者の数は200〜300人に上りました。プロジェクト期間中は、データ活用基盤の技術調査から始まり、関係者への説明や調整、データ移行、クエリ移行、ETLやReverse ETLに使用する各種ツールの導入など、本当に多くのタスクがありました。 プロジェクト背景: TreasureData導入とその課題 TreasureData導入の背景 2024年時点ではGoogle BigQueryを使用していますが、その前の環境が導入された背景を説明します。 2018年12

                                                        全社データ活用基盤をTreasureDataからBigQueryへ移行しました - Leverages データ戦略ブログ
                                                      • Pinterest社で運用されているText-to-SQLを理解する

                                                        導入 こんにちは、株式会社ナレッジセンスの須藤英寿です。普段はエンジニアとして、LLMを使用したチャットのサービスを提供しており、とりわけRAGシステムの改善は日々の課題になっています。 本記事では、Pinterest社のエンジニアチームが紹介していた、実運用環境におけるText-to-SQLの構築方法に関する記事の紹介をします。 Text-to-SQLを実際の運用レベルで実現するための手法が解説されているので、その内容を解説、そして考察していきたいと思います。 なおこの手法には特に名前などは設定されていなかったので、以降Pinterest社の提案するText-to-SQLをPinterest Text-to-SQLと呼称します。 サマリー Pinterest Text-to-SQLは、RAGのシステムを最適化することで 検索に必要なTableのより正確な抽出 実際に使用されている値に準拠

                                                          Pinterest社で運用されているText-to-SQLを理解する
                                                        • AWS から OCI に移行してコストを約半額にした話 - Qiita

                                                          OCIについて知らない方向け AWSは知ってるがOCIを知らないという方は取り急ぎ以下のようなページを読むとイメージが掴みやすいかと思いますのでリンクを貼っておきます。 本件では細かい用語の違いなどの説明は省略します。 OCIへの移行理由 今回移行した理由はコスト削減が最大の理由でした。 オンプレからAWSに移行したのは3年前の2021年2月で当時のドル円相場は約106円でした。 2021年のAWS移行当時、RDSのReserved InstancesとEC2のSavings Plansを3年で購入していました。(通常は1年などで購入されるケースの方が多いと思いますが、歴史のあるサービスなので急激なリソースの増減はあまり無さそうではと考えたためとなります。結果としては円が強いタイミングで安く買えて助かりました) 移行を検討し始めたのはRI/SPが切れる1年前くらいで、その時点のドル円レート

                                                            AWS から OCI に移行してコストを約半額にした話 - Qiita
                                                          • 【SQL】NULL値を制御/SQLマスターへの道「COALESCE」 - Qiita

                                                            導入 SQL文でNULL値を扱う際の便利な関数、COALESCEを紹介しようと思います。 SELECT句で、NULL値を置き換えることで、データの可読性を高めることができたり。 ORDER BY句で、NULL値のソートの条件分岐の複雑性を吸収したり。 と、SQL文の簡略化にぴったりです。 今回の記事では、簡単にCOALESCE関数の説明と実践例を2つご紹介します。 COALESCEについて リストの最初の非 NULL 値を返します。非 NULL 値がない場合は、NULL を返します。 つまり、欠損値(NULL)にデフォルト値を指定することができます。 例 SELECT COALESCE(`office`.`locale`, `office`.name`, `リモート勤務`); 上記のクエリを例にすると...。 office.locale(オフィスの場所)を出力。 office.locale

                                                              【SQL】NULL値を制御/SQLマスターへの道「COALESCE」 - Qiita
                                                            • Amazon Aurora MySQL バージョン 2 (MySQL 5.7 互換) からバージョン 3 (MySQL 8.0 互換) へのアップグレードのチェックリスト、パート2 | Amazon Web Services

                                                              Amazon Web Services ブログ Amazon Aurora MySQL バージョン 2 (MySQL 5.7 互換) からバージョン 3 (MySQL 8.0 互換) へのアップグレードのチェックリスト、パート2 本記事は、Amazon Aurora MySQL version 2 (with MySQL 5.7 compatibility) to version 3 (with MySQL 8.0 compatibility) upgrade checklist, Part 2 を翻訳したものです。 最初のパートでは、 Amazon Aurora MySQL互換エディション v2 から v3 へのアップグレードの事前チェックが失敗する原因となる最も一般的な問題を説明しました。この投稿ではアップグレードが長引いて失敗する最も一般的な原因について説明します。 クラスターにプリ

                                                                Amazon Aurora MySQL バージョン 2 (MySQL 5.7 互換) からバージョン 3 (MySQL 8.0 互換) へのアップグレードのチェックリスト、パート2 | Amazon Web Services
                                                              • Oracle Database 23ai がリリースされたので作成してみてみた - Qiita

                                                                Oracle Database 23ai がリリースされました。このデータベースのリリースでは AI に重点を置いているため、データベースの名前を Oracle Database 23c から Oracle Database 23ai に変更することにしました。この Long-Term Support Release には、Oracle AI Vector Searchと、データによるAIの使用の簡素化、アプリ開発の加速、ミッションクリティカルなワークロードの実行に焦点を当てた300を超える追加の主要機能が含まれています。 ⚫︎ AI and Converged Data: Oracle's Strategy for Data Management Larry Ellison と Juan Loaiza が、Oracle Database 23ai の GenAI 戦略と、Oracle D

                                                                  Oracle Database 23ai がリリースされたので作成してみてみた - Qiita
                                                                • 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT【イベントレポート】 - Findy Tools

                                                                  公開日 2024/05/24更新日 2024/05/24私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT【イベントレポート】 近年データベースが急速に進化し、開発にも大きな影響を与えています。そこでファインディでは「私たちはなぜNewSQLを使うのか TiDBを選定・導入した5社が語る選定と活用」と題したイベントを開催。PingCAPの日下さん、LINEヤフーの佐伯さん、アイスタイルの鈴木さん、DMM .comのpospomeさん、コロプラの曽我さん、さくらインターネットの江草さんをお招きし、NewSQLの一つである TiDBについて語っていただきました。 ■パネリスト 日下 太智さん / @ksk_tic PingCAP株式会社 プロダクトマネージャー / シニアソリューションアーキテクト SIerにて国内外問わずEC/小売/製造/サービス/メディア/出版など様

                                                                    私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT【イベントレポート】 - Findy Tools
                                                                  • Athena で S3 と MySQL を JOIN する | DevelopersIO

                                                                    CDK の中で DB を初期化する点についても後ほど触れます。 S3 にサンプルデータをアップロードする 続いて、以下のコマンドで S3 にサンプルのデータを入れます。 bucket_name=$(aws cloudformation describe-stacks --stack-name BlogAthenaJoinS3AndMysqlStack --output text --query 'Stacks[0].Outputs[?OutputKey==`BucketName`].OutputValue') aws s3 cp ./s3_test_data/data "s3://${bucket_name}/data" --recursive これで CloudFormation で作成した S3 バケット名を取得し、そのバケットに以下の CSV ファイルをアップロードしました。 ※4都

                                                                      Athena で S3 と MySQL を JOIN する | DevelopersIO
                                                                    • MySQLで処理するGIS ~地球が丸いことを覚えたMySQL~ / MySQL GIS FOSS4G TOKAI 2023

                                                                      2023年8月26日(土)に開催されたFOSS4G TOKAI 2023での発表資料です。 法務省登記所備付地図データをMySQLに取り込んでから検索し、空間インデックスにより検索処理を高速化した結果も紹介しています。

                                                                        MySQLで処理するGIS ~地球が丸いことを覚えたMySQL~ / MySQL GIS FOSS4G TOKAI 2023
                                                                      • Introducing pg_timeseries: Open-source time-series extension for PostgreSQL | Tembo

                                                                        Introducing pg_timeseries: Open-source time-series extension for PostgreSQL May 20, 2024 • 6 min read We are excited to launch pg_timeseries: a PostgreSQL extension focused on creating a cohesive user experience around the creation, maintenance, and use of time-series tables. You can now use pg_timeseries to create time-series tables, configure the compression and retention of older data, monitor

                                                                          Introducing pg_timeseries: Open-source time-series extension for PostgreSQL | Tembo
                                                                        • エンジニア向けのBIツール、QuaryをBigQueryに接続して使ってみた | DevelopersIO

                                                                          こんちには。 データアナリティクス事業本部 機械学習チームの中村(nokomoro3)です。 Quaryというエンジニア向けのBIツールが気になったので使ってみました。 GitHub - quarylabs/quary: Open-source BI for engineers VSCodeの拡張機能やCLIが準備されており、以下のことができます。 データベースへの接続 dbtに類似した機能 sqlファイルとしてmodelを記述可能、schemaもyamlファイルで記述可能 schemaはGUIで操作もでき、リネージも表示可能 また簡単なグラフなどもyamlファイルで管理可能 対応ソースはBigQueryやSnowflakeなどとなっていますので、今回はBigQueryで試してみようと思います。 BigQuery側の準備 前準備として、以下のページにある ml-latest-small.z

                                                                            エンジニア向けのBIツール、QuaryをBigQueryに接続して使ってみた | DevelopersIO
                                                                          • Binary logging optimizations in Amazon Aurora MySQL version 3 | Amazon Web Services

                                                                            AWS Database Blog Binary logging optimizations in Amazon Aurora MySQL version 3 The binary log (binlog) in MySQL is used to capture database modifications on a MySQL server in a logical format known as “events”. These database modifications can include DCL statements (such as CREATE USER or GRANT), DDL statements (CREATE TABLE, ALTER TABLE) and DML statements (INSERT, UPDATE, DELETE). When such a

                                                                              Binary logging optimizations in Amazon Aurora MySQL version 3 | Amazon Web Services
                                                                            • GitHub - kiwicopple/serverless-postgres

                                                                              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 - kiwicopple/serverless-postgres
                                                                              • 2024年度のサイバーエージェント新卒社内研修で「データベースの歴史」の話をしました | CyberAgent Developers Blog

                                                                                こんにちは。 AI事業本部の協業リテールメディアdivでバックエンドエンジニアをしている yassun7010 といいます。 先日、 AI 事業本部の新人研修で「データアプリケーション」の講師を同じチームの 千葉 と担当しました。 今回の記事では、主に私が担当した「データベースの歴史」の章の講義資料を公開し、資料を作成する際に考えていたこと・伝えたかったことを話します。 「データベースの歴史」で説明されている内容は、AI事業本部の新卒研修で毎年取り上げられているものです。こういった研修の資料は、同じテーマであっても講師をする人の好みが反映されやすく、今年の資料も先人が作られた昨年の資料を参考にしつつ、私が好きな話題を多く取り入れたものに仕上がりました。 SlideShare でも公開しています。 今年の構成は、データベースを RDS・NoSQL・NewSQL として分け、下記のような構成を

                                                                                  2024年度のサイバーエージェント新卒社内研修で「データベースの歴史」の話をしました | CyberAgent Developers Blog
                                                                                • PostgreSQL の TIMESTAMPTZ 型はタイムゾーンに関する情報を保持しない - Qiita

                                                                                  PostgreSQL の TIMESTAMPTZ 型について誤解していた部分があったので記事にします。以下の記事を参考にさせていただきました。 この記事で伝えたいこと TIMESTAMPTZ 型はタイムゾーンに関する情報を保持しない DB に設定されているタイムゾーンで挙動がかわってしまう操作があるので注意が必要 TIMESTAMPTZ 型はタイムゾーンに関する情報を保持しない TIMESTAMPTZ 型は、timestamp with time zone という名前にも関わらず、タイムゾーンの情報を持たない。 実験: タイムゾーンの異なる、同じ日時の値を SELECT してみる → SELECT して表示される日時のタイムゾーンは同じ SELECT '2022-07-31 12:53:00+00'::TIMESTAMPTZ; -- 2022-07-31 21:53:00+09 SELEC

                                                                                    PostgreSQL の TIMESTAMPTZ 型はタイムゾーンに関する情報を保持しない - Qiita
                                                                                  1