タグ

SQLに関するyk5656のブックマーク (89)

  • 非エンジニアのSQL学習ことはじめ 〜1日1時間・3か月でSQLがそこそこできるようになる勉強方法とおすすめ書籍〜

    これは何「来年こそはSQL書けるようになるぞ」と思ってる方に向けた、1日1時間・3か月でSQLそこそこできるようになる学習方法について書いた記事です長文がつらつら書いてある稿ですが、要するに言いたいことは

    非エンジニアのSQL学習ことはじめ 〜1日1時間・3か月でSQLがそこそこできるようになる勉強方法とおすすめ書籍〜
    yk5656
    yk5656 2021/11/12
  • SQLを使った監視でデータ基盤の品質を向上させる - MonotaRO Tech Blog

    こんにちは、データ基盤グループの吉田(id:syou6162)です。データ基盤グループでは安定してデータを利用できるように様々な取り組みを行なっています。エントリでは、データ品質に問題がある場合にすぐに気付けるようにしたSQLによる監視の仕組みを紹介します。 背景 SQLを使った監視基盤の構築 実際の監視項目例 他チームがdailyで転送しているデータがバッチの失敗により遅れていないか BigQueryのエラーレートが急激に増加していないか 承認済みビューの設定が意図せず消えていないか 今後の展望 背景 データ基盤の運用をしていると、日々様々なトラブルと向き合う必要があります。例えば、以下のようなものがあります。 他チームがdailyで転送しているデータがバッチの失敗により遅れている TerraformなどのIaCで承認済みビューの権限管理を行なっているが、コードの設定ミスで意図せぬ状態

    SQLを使った監視でデータ基盤の品質を向上させる - MonotaRO Tech Blog
    yk5656
    yk5656 2021/08/24
  • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編

    はじめに こんにちは。 GMOアドマーケティングのKONCEです。 新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。 今回は入社してDBSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。 今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅰ部 データベース論理設計のアンチパターン 2-1. [○]1章 ジェイウォーク(信号無視) 2-2. [×]2章 ナイーブツリー(素朴な木) 2-3. [○]3章 IDリクワイアド(とりあえずID) 2

    業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編
    yk5656
    yk5656 2021/06/23
  • 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, MongoDBDBMSの目的は、アプリケーションが簡単にデータベースにデー

    SQL Training 2021
    yk5656
    yk5656 2021/06/22
  • 社内SQL研修のために作った資料を公開します | 株式会社AI Shift

    こんにちは、Development Teamの三宅です。 先日、社内(AI事業部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基的には大学のデータベース講義で

    社内SQL研修のために作った資料を公開します | 株式会社AI Shift
    yk5656
    yk5656 2021/06/22
  • コールセンターの担当者もSQLを叩く。モノタロウのデータドリブンな文化に惚れた|株式会社MonotaRO(モノタロウ)

    記事の内容は取材時のものであり、組織名や役職等は取材時点のものを掲載しております。 モノタロウの継続的なビジネス成長に伴い、月間セッション数や注文数は大幅な増加を続けています。指数関数的に増えるデータを扱いやすくするための技術的探求は尽きません。 なかでもデータハブの整理・構築を中心に技術開発・研究に携わるのが、エンジニアの中村さん(ECシステムエンジニアリング部門 EC基盤グループ コアロジックチーム)です。データ領域で「冒険したかった」という彼が、モノタロウを選んだ理由や技術的な面白さ、今後の展望について話を聞きました。 データが“いくらでも増え続ける”サービスでのチャレンジ ——はじめに、現在の業務について教えてください。 主にデータハブの整理や構築です。実際のデータからバッチ処理でデータを作り、API化していく手法を開発・研究しています。プラクティスを他の開発者に展開するなど、

    コールセンターの担当者もSQLを叩く。モノタロウのデータドリブンな文化に惚れた|株式会社MonotaRO(モノタロウ)
    yk5656
    yk5656 2021/06/05
  • SQLが重いときに見るお気軽チューニング方法

    SQLのチューニング方法 昔Qiitaで書いたものをzennうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加

    SQLが重いときに見るお気軽チューニング方法
    yk5656
    yk5656 2021/05/09
  • GoでSQLにトレーシングコメントを埋め込んで実行する | おそらくはそれさえも平凡な日々

    アプリケーションが発行するSQLにコメントが埋め込めると便利です。例えば、 /* path/to/logic.go:334 */ SELECT ... のようにSQLに発行元の情報をコメントとして埋め込んでからExecすれば、DB側のログ(general log等)にも記録されるため、SREやDREサイドからも、負荷の高いSQLがアプリケーションのどこから発行されているかが分かりやすくなります。 Goには github.com/shogo82148/go-sql-proxy という、SQL実行をトレースし、フック処理を差し込める便利なライブラリがありますが、今回それにpull requestを送って、SQL実行前にクエリの書き換えができるようにしました。 https://github.com/shogo82148/go-sql-proxy/pull/61 https://github.co

    GoでSQLにトレーシングコメントを埋め込んで実行する | おそらくはそれさえも平凡な日々
    yk5656
    yk5656 2021/02/03
  • Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応

    GoogleORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 SQL文を直接書かなくとも、自動的にSQL文を生成、実行してくれるORM(Object-Relational Mapper)は、プログラミングを容易にしてくれる技術としてRailsやHibernate、Springなどさまざまなフレームワークなどで活用されています。 一方で、ORMが生成するSQL文はときに複雑に、あるいは非効率なものとなり、データベース処理の遅さにつながることもあります。 このとき、SQL文の生成と実行を明示的にコードとして記述する必要がないというORMの特徴が、なぜデータベース処理が遅くなったのか、どのようなSQL文が生成され、そのどこに原因があるのか、といった調査を難しくている面があり

    Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応
    yk5656
    yk5656 2021/02/03
  • ぐるぐるSQLは止めてくださいという話 - Qiita

    1. はじめに 仕事の都合で DB/SQL の性能問題を調査する機会が少なくありませんが(決してメインの仕事ではないですが)、その中でよく出くわす問題の1つに「ぐるぐるSQL」(もしくは「ぐるぐる系」)といわれる、ループで大量の SQL 文を呼び出しているものがあります。 感覚ですが、私の周りでは OLTP 系システムの DB/SQL の性能問題の原因の割合は以下のように感じています。 30%:ぐるぐる SQL 20%:SQL 文の書き方が不適切 15%:索引がない or 不適切 15%:パーズが遅い 10%:データモデルがおかしい 10%:その他 (大昔は2番目 / 3番目がほとんどだったのですが、最近はなぜがぐるぐる SQL が多い…) ぐるぐる SQL の実装では、ネットワーク通信や、アプリ側のクエリ生成 / 結果データ構築、DB 側のクエリ受信 / 結果送信といった、処理の質的で

    ぐるぐるSQLは止めてくださいという話 - Qiita
    yk5656
    yk5656 2021/01/19
  • 「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita

    目次 なぜSQLのスタイルガイドが重要なのか この記事の目的 この記事の対象者 分析SQLスタイルガイドの指針 基ルール 命名規則 インデントルール 別名ルール joinルール クエリ分割ルール ⭐ コメント欄で「いや私はこう思う!」という意見をたくさんいただきました!ぜひそちらも御覧ください!(決して揶揄ではないです) なぜSQLのスタイルガイドが重要なのか SQLはプログラミング未経験者でもとっつきやすい言語と言われ、エンジニアや分析を業としていない人でもSQLを使う機会が増えてきていると思います。 そんなSQLですが、こちらのブログでも指摘されている通り、一般的なスタイルガイドが定まっていません。スタイルガイドとはコードの書き方マナーようなもので、どこで改行するか、空白はいくつ入れるか、大文字を使うかなどの諸々を指します。 もしスタイルガイドが無いとこんな事が起こります コードに

    「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita
    yk5656
    yk5656 2021/01/12
  • SQL学習モチベを爆上げする「SQLテスト制度」を導入している話 - AppBrew Tech Blog

    こんにちは、最近はアプリグロースを担当しているabeshi(@abeshi_official)です。 美容のプラットフォーム「LIPS」を運営するAppBrewでは非開発職のSQL習得に力を入れています。誰でもRe:dashやログを触れる状態になっているし、それぞれのDBに何がどう入っているかを共有するためのドキュメントも存在しています。 「非開発職もSQL書けるように頑張ろう!」と掲げたところで、当の人たちは毎日仕事が忙しくなかなか時間も取れない上に明確な目標がないといまいち学習モチベーションを保つことができません。そこで弊社が導入したのが「SQLテスト制度」です。 ✍️SQLテスト制度とは SQLの学習到達度によってレベルごとに分けたテストで、合格すると給与が上がります。 *1現在は二つレベルが存在していて、 【レベル2】... 初学者向けでwhere・joinなど基的な文法が使え

    SQL学習モチベを爆上げする「SQLテスト制度」を導入している話 - AppBrew Tech Blog
    yk5656
    yk5656 2020/11/12
  • SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita

    2020/9/30追記 記事は元々、「SQL記述者全員が理解すべきSELECT文の実行順序のお話」というタイトルで投稿しておりました。 しかし、知見のある方からのコメントと自分でも調べてみた結果、今回紹介している順序はあくまで論理的な処理順序であり、実行順序とは別物ということがわかりました。 誤った知識を布教してしまい申し訳ございません。 2020/9/30のタイミングで、記事のタイトルを「SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話」に変更させていただきました。 はじめに 「SQLといえば、エンジニアが扱うスキル」と思われがちですが、最近はマーケターや営業など、非エンジニアの方もSQLを使って、自らデータを抽出し分析する方が増えてきています。 またエンジニアの方でも、ORM任せでなんとなく理解している状態の方もいるのではないでしょうか? 今回は、そんな方々にこそ

    SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita
    yk5656
    yk5656 2020/09/23
  • ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ

    @tkanayama_です。「SQLアンチパターン *1」 というを読みました。「ポケモンを題材に因果推論を実践してみる」のように、仮想的なストーリ上で実際に使ってみた感を出すことにより、自分の記憶に定着させることを狙います。 前提として、何をアンチパターンとするかは状況(ベンダーフリーである必要があるかどうか、どの程度の頻度で更新されるか・・・など)によって大きく異なるので、下記で紹介するアンチパターンは実は状況によっては問題にならないケースもあるかと思います。この投稿はあくまで「SQLアンチパターン」に忠実に従うことが目的です。 www.oreilly.co.jp 追記 登場人物 ストーリー フシギダネへの対応 ヤミカラスへの対応 ディグダへの対応 誤登録でポケモントレーナーになってしまったユーザーの削除 最後に 謝辞 追記 このブログを公開後、「外部キー制約はレコードロック周りのト

    ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ
    yk5656
    yk5656 2020/07/26
  • すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita

    sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し

    すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita
    yk5656
    yk5656 2020/05/16
  • websec-room.com - websec room リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    websec-room.com - websec room リソースおよび情報
    yk5656
    yk5656 2020/03/16
  • 「雑用扱いで名前もない」 データ分析の土台を支える“SQLを叩く人”の重要性を問い直す

    「雑用扱いで名前もない」 データ分析の土台を支える“SQLを叩く人”の重要性を問い直す:これからのAIの話をしよう(データ整備人編)(1/3 ページ) 多くの企業がデータの分析・活用に取り組んでいますが、その中で抜け落ちがちなのが、データ整備の視点です。データベースからデータを抽出・集計して分析者に渡す作業は地味に見えますが、データ分析の土台を支える極めて重要な仕事です。 この役割は、戦争でいうところの「兵站」(へいたん)に当たるほど重要なのではないか――データ分析に関する情報発信を続けるしんゆうさんが、自身のブログでこう問いかけた所、予想以上の反響があったといいます。 ※兵站:戦場で、前線の部隊のために軍需品や料などの供給・補充を行う機関 しんゆうさんは、データを抽出・集計して分析者に渡す人を「データ整備人」「データアーキテクト」と呼び、データ分析に関する勉強会を開催するなどの啓蒙活動

    「雑用扱いで名前もない」 データ分析の土台を支える“SQLを叩く人”の重要性を問い直す
    yk5656
    yk5656 2020/01/30
  • SELECT文で本番環境を落としたお話 - Qiita

    (この記事は 地平線に行く とのマルチポストです) 番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ

    SELECT文で本番環境を落としたお話 - Qiita
    yk5656
    yk5656 2019/12/26
  • SQL学習オンラインサービス「Start-SQL」をリリースしました - GoTheDistance

    こんな感じで、ブラウザでSQLを書いて環境構築一切不要でSQLを学べるというWebサービスです。 今北産業 SQL言語のみをサポートしています。 環境構築一切不要で、無料でお試し出来ます。 コンテンツには無料と有料の2つがあり、有料版は”買い切り”で、5000円です。全てのコンテンツがお楽しみ頂けます。 圧倒的にアカウントを買うニーズが強かった 2019年8月頃に「研修サービスのプラットフォームとして」告知をしたのですが、結論から言うと「講師や研修は別にいらん、アカウントだけ売ってくれ」が個人 / 法人共に、圧倒的に多かったため、会員登録/ログイン/マイページ/コンテンツ購入/パスワードリマインダなどの機能を別途付与して、Webサービスとしてリリースしました。 買い切りにした理由 コンテンツを定期的に追加する予定が全く無いためです。月額制にするならほっといてもコンテンツが増えていかねばなり

    SQL学習オンラインサービス「Start-SQL」をリリースしました - GoTheDistance
    yk5656
    yk5656 2019/12/25
  • そろそろSQLのウィンドウ関数を理解したい - 連載1/3話 - Qiita

    はじめに データ分析とデータ品質改善に従事してきた筆者が、SQLを用いた分析の基である「ウィンドウ関数」の使い方とデータ品質の調査改善を行う手法をまとめてみようと思います。 こちらの記事は、SQLの知識向上と振り返りを主題としているので、ABC分析、バスケット分析、RFM分析などの「データ分析の手法」について説明している記事ではありません。(反響やコメントによって別投稿するかもしれません) 背景 SQLエンジニアの大多数が利用しており、多くの方はWebサービス開発などでデータの登録画面や検索画面を作る際にSQLを利用したり、またはシステムの運用保守で障害の原因調査のためにSQLを利用して原因を特定すると思います。そのため、テーブル結合・サブクエリ・集計関数といったSQL構文は理解されている人が多いと思いますが、分析関数を理解して使っている人となると、ぐっと減ると思います。 私は以前、社

    そろそろSQLのウィンドウ関数を理解したい - 連載1/3話 - Qiita
    yk5656
    yk5656 2019/11/20