タグ

関連タグで絞り込む (199)

タグの絞り込みを解除

SQLに関するclavierのブックマーク (296)

  • BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG

    こんにちは、株式会社ZOZOで25卒の内定者アルバイトをしている村井です。この記事では業務で取り組んでいる、BigQueryで使うSQLのリンターの作成方法について紹介します。 目次 目次 課題と解決策 課題 解決策 BigQueryのアンチパターン認識ツール ミニマムな使い方 日語がSQL内に含まれている際の問題 アンチパターンを定義する リンターとしてBigQueryのアンチパターン認識ツールを使用する際に生じる課題と解決策 構成 APIサーバ化 Chrome拡張 動作例 まとめ 課題と解決策 課題 社内では様々なチームがSQLを書いており、動作はするものの良くない書き方をしている場合があります。そういった構文を検知して、前もって修正する必要があります。 解決策 BigQueryのコンソールで入力されたSQLの不正構文を検知、修正案を提示できるようにしました。 BigQueryのアン

    BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG
  • MySQL8.0のWindow関数を分かりやすく紹介する(5.謎多きフレーム句を使うと良いことはあるのか?) | スマートスタイル TECH BLOG

    はじめに MySQL8.0がリリースされたことにより、Window関数の利用が可能になりました。 Oracle、PostgreSQLSQL Server等でも利用できる関数ですが、「難しそう」、「どういう場合に使えば良いか分からない」というイメージを持たれている方もいると思いますので、この記事ではシンプルにどのようなことができるのかを紹介していきます。 過去の記事でもWindow関数について分かりやすく記載しておりますので、確認されていない方は是非こちらの記事もご参照ください。 ・MySQL8.0のWindow関数を分かりやすく紹介する(1.「集計関数×Window関数」のコラボ) ・MySQL8.0のWindow関数を分かりやすく紹介する(2.順位・連番の付け方(基編)) ・MySQL8.0のWindow関数を分かりやすく紹介する(3.順位・連番の付け方(発展編)) ・MySQL8.

    MySQL8.0のWindow関数を分かりやすく紹介する(5.謎多きフレーム句を使うと良いことはあるのか?) | スマートスタイル TECH BLOG
  • BigQueryでJSON文字列を攻略する関数たち - ドワンゴ教育サービス開発者ブログ

    はじめに ドワンゴ教育事業でデータアナリストとして働いている小林です。 ドワンゴ教育事業におけるデータアナリストは企画開発組織の一員としてKPI可視化やレポーティングなどをメイン業務としています。個人的には新たなサービスが生まれる瞬間のお仕事が一番好きで、「何の指標をみていくのか」「どんなデータが流れてくるのか」など少し上流の工程からデータの取り扱いを検討するとともに、既存のダッシュボードをバージョンアップする良い機会にしたり、新たなステークホルダーに対して良いデータ分析の提供を考えたりと、楽しい日々が続きます。 私たちドワンゴ教育事業では大学開学やR高の開校など大きなサービスリリースが予定されていますので、サービス環境の変化を楽しみながらやりがいをポジティブなパワーに変えていきたいと思っています! 課題について(導入に代えて) 昨今、分析対象としてJSON文字列を取り扱うことが増えてきま

    BigQueryでJSON文字列を攻略する関数たち - ドワンゴ教育サービス開発者ブログ
  • データ分析で用いるSQLクエリの設計方法

    STEP2. アウトプットを実現するために必要なデータソースを書き出す アウトプットの整理ができたら、今度はインプットとなるデータソースの整理を行いましょう。 必要なデータソースは要件から読み解くことができます。 今回は「10代のユーザーの月間視聴数(性別 / 動画カテゴリごと)の推移をグラフで見たい」という要件です。 ここから、この分析に必要なエンティティ(実体)とその属性、集計値を抽出しましょう。 エンティティと属性 ユーザー 性別 年代 動画 カテゴリ 集計値 視聴数 これらのデータを管理するテーブルを、調査やヒアリングを実施して探します。 今回は以下のテーブルを使用することとします。 user:ユーザー登録に必須な入力項目を管理するテーブル user_profile:ユーザーが登録後に設定できる任意の入力項目を管理するテーブル video:ユーザーが投稿した動画を管理するテーブル

    データ分析で用いるSQLクエリの設計方法
  • DuckDB+Evidenceを駆使してISUCON14で21位になった話 - Gマイナー志向

    2024年12月8日に開催されたISUCON14に「ウー馬場ーイーツ・ザ・ファイナル」として参加しました。最終スコアは29,386でした。実装言語はGoです。 こんなPostをしてましたがRustは採用しませんでした(今回は余裕がなかった)。 講談社サイエンティフィク様からのご厚意で書籍「RustによるWebアプリケーション開発」をご恵贈いただきました。早速読み進めてます。今年のISUCONはRustで決まりかー!? #PR https://t.co/sOAcWEqE8P pic.twitter.com/cK7V6lPMQk— matsuu (@matsuu) 2024年10月8日 今年のチャレンジについて 我らがチームはISUCON開催のたびに新たなチャレンジ*1をしてるのですが、今回は以下の4つにチャレンジしました。 ログ解析の見直し 生成AIの導入 rustlsの導入 bpftune

    DuckDB+Evidenceを駆使してISUCON14で21位になった話 - Gマイナー志向
  • センスの良いSQLを書く技術 達人エンジニアが実践している35の原則

    【どうすれば達人のようなコードが書けるのか?】 著書累計20万部を超える、データベース(DB)界の達人・ミック氏が、 「センスの良いSQLを書く技術」を身につけるための思考法や勉強法を大公開! コーディングや設計を行う上で知っていると一生役に立つ、 SQLRDBの理論や哲学をわかりやすく解説しています。 【達人が考えるセンスの良いSQLとは?】 無駄がなく、可読性が高いエレガントなSQLこそが目指すべき「センスの良いSQL」です。 それが、メンテのしやすさ、パフォーマンスの良さにつながるからです 書では、エレガントでかつハイパフォーマンスなSQLを実現する技術として、、 SQLの書きやすい順序、効率的なクエリの書き方、保守しやすいコード、 適切なインデックス戦略、実行計画の重要性、無限のスケーラビリティ 等を解説しています。 【書の特徴】 1テーマごとに、まずサマリー+イメージ図(イ

  • SQL+Markdownだけでデータ可視化できるOSS Evidenceを使ってPerfumeの楽曲分析をしてみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 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 拡張機能のイ

    SQL+Markdownだけでデータ可視化できるOSS Evidenceを使ってPerfumeの楽曲分析をしてみる - Qiita
  • DatabricksSQL パフォーマンス・チューニング Tips - Qiita

    はじめに この記事はこれまで実案件において実施したDatabricksSQLパフォーマンスチューニングの作業内容をベースに、実行クエリのボトルネック特定からパフォーマンス改善の手法について共通すると思われるTipsをベストプラクティスとしてまとめたものです。 DatabricksSQLの操作経験がある方を対象に記載しておりますため、DatabrickSQLの機能説明や用語解説及び設定コマンドの詳細等は割愛しておりますが、今回初めてDatabricksSQLをご検討される方でも理解いただけるよう、該当するDatabricksドキュメントリンクも併せて記載しておりますので適宜ご参照ください。 ※ドキュメントへのリンクはAzure Databricksのリンクを使用していますがAWS/CGP上のDatabricksでも同様の機能を提供しています。 DatabricksSQLとは Databric

    DatabricksSQL パフォーマンス・チューニング Tips - Qiita
  • 生SQLに型を手書きする時代は終わり?Prismaの新機能「TypedSQL」

    SQLを扱う $queryRaw TypeScript向けのORMライブラリとしてPrismaがあります。Prismaは直感的で型安全なAPIを提供し、TypeScript向けのORMとしては第一に名前が上がることが多いライブラリです。 しかしそんな人気なPrismaでも、裏側では少しクセのあるSQLが発行されていたり、欲しいSQLがPrismaのAPIでは実現できない場合があります。 そういった場合のために $queryRaw というメソッドが用意されており、これを使うことで生SQLを書いてその結果を受け取ることができました。他のORMにもよくある機能です。 例えば以下のように実装することができます。 const users = await prisma.$queryRaw` SELECT id, name FROM "Users" WHERE id = ${userID} `; co

    生SQLに型を手書きする時代は終わり?Prismaの新機能「TypedSQL」
  • セマンティックレイヤー / Headless BIとは

    この記事は何 2023年、世間はLLMで大騒ぎですが、データの業界ではセマンティックレイヤー・Headless BIへの注目も高まっています。 これは、まだ国内では黎明期ともいえるそんな技術が、今後どんな存在となりうるのかを、筆者の個人的な解釈と妄想をもとに述べる長文ポエムです。 セマンティックレイヤーとは まず最初にセマンティックレイヤーについて解説します。 セマンティックレイヤーとは セマンティックレイヤーとは、データベースとデータ利用者の間に入り、両者間のやりとりを円滑にする存在です。 データ統合プラットフォームを提供するAirbyte社は、セマンティックレイヤーをデータとビジネスユーザーの中間に位置する、複雑なデータを理解可能なビジネスの概念に変換・翻訳するレイヤーと説明しています。 A semantic layer is a translation layer that sits

    セマンティックレイヤー / Headless BIとは
  • サブクエリの書き方を2万文字弱かけてすべて解説する

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

    サブクエリの書き方を2万文字弱かけてすべて解説する
  • Pinterest社で運用されているText-to-SQLを理解する

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

    Pinterest社で運用されているText-to-SQLを理解する
  • AWS Glue × Apache Iceberg で構築する更新可能なデータレイクテーブル

    こんにちは。シンプルフォーム株式会社 にてインフラエンジニアをしています、山岸です。 社内向けに運用しているデータ分析基盤について現状抱えているいくつかの課題を克服すべく、最近は更改に向けた検証に取り組んでいます。今回は取り組みの一つである「AWS Glue と Apache Iceberg によるデータレイクテーブル構築」についてご紹介したいと思います。 概要 当社ではデータ分析基盤の ETL 処理に AWS Glue を使用しています。社内のデータ分析業務等のため、RDS データベース等のデータソースから日次で S3 上に構築された DWH に連携しています。 現行のデータ分析基盤では、DB テーブル上のデータを毎日全件洗い替えています。このような処理方法は ETL 実装や問題発生時の復旧が簡単である一方、ETL 処理のコスト効率が悪く、データ量の増加に伴って処理時間も長くなっていきま

    AWS Glue × Apache Iceberg で構築する更新可能なデータレイクテーブル
  • データ分析のためのSQLを書けるようになるために

    はじめに 稿では分析用クエリをスラスラ書けるようになるまでの勉強方法や書き方のコツをまとめてみました。具体的には、自分がクエリを書けるようになるまでに利用した教材と、普段クエリを書く際に意識していることを言語化しています。 想定読者として、SQLをガンガン書く予定の新卒のデータアナリスト/データサイエンティストを想定しています。 勉強方法 基礎の基礎をサッと座学で勉強してから、実践教材で実際にクエリを書くのが望ましいです。 実務で使える分析クエリを書けるようになるためには、実務経験を積むのが一番良いですが、だからといって座学を御座なりにして良いというわけではありません。SQLに自信がない人は、一度基礎に立ち返って文法の理解度を確認した方が良いと思います。 書籍 SQL 第2版: ゼロからはじめるデータベース操作 前提として、SQLに関する書籍の多くがデータベース運用/構築に関する書籍がほ

    データ分析のためのSQLを書けるようになるために
  • どのレイヤー(層)でトランザクションを実装すべきか

    このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ

    どのレイヤー(層)でトランザクションを実装すべきか
  • dbtのDWHをRedshift(serverless)からSnowflakeに切り替えたときのおはなし|あきよん

    フリーランスでアナリティクスエンジニア的なお仕事をしています。 最近(2023年10月 ~ 12月頃)、データウェアハウスをRedshift (serverless)からSnowflakeに切り替える作業の一旦を担いました。 備忘録を兼ねて、私が担当したdbtに関連する切り替え作業の中で、印象に残った部分をいくつかご紹介したいと思います。 カラム名が小文字(Redshift)から大文字へ(Snowflake) Redshiftはカラム名が小文字、snowflakeはカラム名が大文字です。Snowflakeに移行する上で、これが一番苦労する要因になった違いでした。 ドキュメント(yamlファイル)を作成する際に、dbt-osmosisを使用しています。 ここではdbt-osmosisの詳細は述べませんが、DWHの内容から自動でドキュメントを作成してくれます。 新規で作成したものはドキュメント

    dbtのDWHをRedshift(serverless)からSnowflakeに切り替えたときのおはなし|あきよん
  • RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド / delete flag

    PHPカンファレンス関西の登壇資料です。 WEB+DB PRESS Vol.134に詳細があります https://gihyo.jp/magazine/wdpress/archive/2023/vol134

    RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド / delete flag
  • https://gvwilson.github.io/sql-tutorial/

  • PostgreSQLの仕組みから学ぶために必要な資料 - そーだいなるらくがき帳

    質問されることが多いのでPostgreSQL初学者が運用を行うためにしっておく知識に必要な内容をまとめる。 PostgreSQLの基的なアーキテクチャ PostgreSQLのアーキテクチャを知らないと自分がやっている作業が危険な作業かどうかわからないし、パラメータの意味もわからない。 そこで以下のリンクを読むと良い。 富士通が後述の資料を参考にまとめたのだろうなと思われる記事。 非常によくまとまっているのでわかりやすい。 www.fujitsu.com もっと細かく知りたいならPostgreSQL Internalsがおすすめ。 富士通の資料と重複するところがあるがこっちが家。 Githubで管理されているので誤字脱字などあったら気軽にPRを出してほしい。 www.postgresqlinternals.org PostgreSQL Internalsが少し古いので最新事情で知りたい場

    PostgreSQLの仕組みから学ぶために必要な資料 - そーだいなるらくがき帳
  • 型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog

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

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