タグ

SQLに関するasa_ca3のブックマーク (49)

  • データ指向アプリケーションデザインから見るGraphQL

    グラフモデルとSoEとGraphQL / TECH STAND #7 GraphQL 2022/03/03 に行われた stand.fmさん主催の TECH STAND #7 にて上記のタイトルで登壇しました。 今回の内容は GraphQLの採用を検討するにあたって、RESTとの違い、BFFとの違いをデータの観点から言語化したかった Hasuraが良いという意見と, Apollographql-ruby, gqlgenなどのハンドライティングなGraphQLが良いという意見の違いがどこから生まれているかの考察がしたかった データ指向アプリケーションデザイン(2017年リリース)にSoEやGraphQLへの言及がないため, 今だとこういう内容が書かれているんじゃないかという考察がしたかった をモチベーションに調査・検討しました。 発表のハイライトはこちらです。 以下発表内容です。一部発表時

    データ指向アプリケーションデザインから見るGraphQL
  • Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス

    読者対象 ある程度データベースに関する知識を持っている,経験年数 1 年以上のバックエンドエンジニア 特定のプログラミング言語に依存する部分は含めないため,すべての SQL 使用者を対象とする また,ゼロからの丁寧な説明というよりは,リファレンス感覚で使える記事という形にまとめる。 RDBMS の対象バージョン PostgreSQL: 9.4 以降 MySQL: 8.0.28 以降 id (データ型と INSERT 時のデフォルト埋め) 導入 一般的に採用されやすいプライマリキー用の値として,以下を考える。 連番整数 MySQL では AUTO_INCREMENT, Postgres では IDENTITY や SERIAL と呼ばれるもの UUID v1: ハードウェアごとにユニークな単調増加値 UUID v4: ランダム値 UUID v7(ドラフト): 単調増加であるタイムスタンプとラ

    Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス
  • 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など主要なフレームワークに対応
    asa_ca3
    asa_ca3 2021/02/03
    コメントがログに出てれば抽出しやすい
  • テーブルの設計 - Azure Synapse Analytics

    この記事では、専用 SQL プールでのテーブルの設計に関する重要な初歩的概念について説明します。 テーブル カテゴリを決定する スター スキーマは、データをファクト テーブルとディメンション テーブルに編成します。 一部のテーブルは、ファクト テーブルまたはディメンション テーブルに移動する前に統合またはステージング データに使用されます。 テーブルを設計する際には、テーブルのデータがファクト、ディメンション、統合のいずれのテーブルに属するかを決定します。 この決定は、適切なテーブル構造体および配布を通知します。 ファクト テーブルには、一般にトランザクション システムで生成された後、専用 SQL プールに読み込まれる定量的データが含まれています。 たとえば、小売業の場合、販売トランザクションが毎日生成され、そのデータが分析のために専用 SQL プール ファクト テーブルに読み込まれます。

    テーブルの設計 - Azure Synapse Analytics
  • PySparkはじめました - 分散処理デビューする前にやったこと - JX通信社エンジニアブログ

    「JX通信社Advent Calendar 2019」10日目の記事です. 昨日は, @rychhrさんの「Pure WebSocketsをサポートしたAWS AppSyncでWebとiOS間のリアルタイムチャットを作ってみた(1)」でした. 改めまして, こんにちは. JX通信社でシニア・エンジニア&データ基盤エンジニアをしています, @shinyorke(しんよーく)と申します. JX通信社では, データ駆動での意思決定および施策実施をより円滑に進めるため, データ基盤の構築・運用を進めながらトライアル的に様々なFrameworkやツールの検証を行っています.*1 このエントリーでは, 私がシュッとPySparkで分散処理をする...前に, 手元で試したときの感想とその知見 のお話を残していきたいと思います. なお, 分散処理そのものの知見・ノウハウではなく, する前にPySparkに

    PySparkはじめました - 分散処理デビューする前にやったこと - JX通信社エンジニアブログ
  • とりあえず使えそうな SQLAlchemy 入門(※ ORM機能は使いません) - エムスリーテックブログ

    物資難の時代、化学者はカップ酒をビーカー代わりに使った・・・らしい(文とは関係ありません) こんにちは、エムスリー・エンジニアリングG・基盤開発チーム小です。 SQLAlchemyはPythonSQLライブラリのデファクトスタンダードで、エムスリーでも使っていますが、意外と導入の障壁が高い。そこで、とりあえずSQLAlchemyを使い始めるのに必要な情報を調べました。 具体的には生の(文字列の)SELECT文を組み立て、クエリする方法を説明します。 なぜこの記事を書いたか SQLAlchemy の入門記事をググると、 SQLAlchemy は ORM です DBに接続しメタデータを取得します ベースモデルを継承し、モデルを定義し、テーブルと関連づけます といった、 「重い」使い方の記事ばかりがヒットします。そのせいか、 「SQLAlchemyは難しい」 「SQLAlchemyはORM

    とりあえず使えそうな SQLAlchemy 入門(※ ORM機能は使いません) - エムスリーテックブログ
  • Arel でサブクエリ - Qiita

    Rails Advent Calendar 8日目です。 Arel でサブクエリを組んでみようと思って、どうやるのかググるとこのページがヒット。いろんな例があってわかりやすいです。 Arelで色んなSQLを組み立ててみる - ryopekoの日記 サブクエリや型変換を伴うようなSQLの組み上げについては調査中です。 えー。 ということで調べたメモ。 基 Arel::Table というクラスがあって、そこからメソッドをチェーンしていきます。 Arel::Table のオブジェクトは普通にnewして作ることができます。

    Arel でサブクエリ - Qiita
  • Embulk を使って CSV から MySQL へデータ投入してみた - enomotodev’s blog

    今回は Embulk を使って、CSV から MySQL にデータを投入してみたいと思います。 Embulk とは Embulk とはバルクデータローダーと呼ばれる、データ転送ツールです。 Fluentd を開発した Tresure Data によって開発され、Fluentd を知っている方は、Fluentd のバッチ版だと考えると理解しやすいと思います。 (Fluentd についてはこちらで記事にしています) Fluentd のように入力・出力のプラグインは多数公開されており、例えば、MySQL の入力プラグインと、ElasticSearch の出力プラグインを組み合わせることによって、MySQL のデータを ElasticSearch に移したりなど、異なるデータストア間でのデータの交換が容易に行うことができます。 作業環境 CentOS 7.2 Java 1.8.0_101 MySQ

    Embulk を使って CSV から MySQL へデータ投入してみた - enomotodev’s blog
  • 『Go言語でTestableなWebアプリケーションを目指して』

    はじめまして@shohhei1126です! 2016年1月にリリースされたAmebaFRESH!のサーバサイドを担当しております。 ここ1、2年社内でもGo言語を使うプロジェクトが増えてきているのですが(Go Lang in Cyberagent こちらもどうぞ)AmebaFRESH!でもGo言語をメインに使っています。 今回はGo言語のテストへのアプローチについて考えたいと思います。 テストの書きやすさGoでは言語レベルでテストをサポートしている(https://golang.org/pkg/testing/#pkg-overview)のでテストを書くという敷居は他の言語より低く感じます。実際これまでのプロジェクトの中で一番テストを書いていますし、やっぱりテストがあると安心感ありますね(・∀・) Mock化の難しさテストの取っ掛かりとしての敷居は低いですがデータアクセスまわりのテストを書

    『Go言語でTestableなWebアプリケーションを目指して』
  • 68. Spring Boot application Part IX. ‘How-to’ guides

    This section provides answers to some common ‘how do I do that…​’ questions that often arise when using Spring Boot. Its coverage is not exhaustive, but it does cover quite a lot. If you have a specific problem that we do not cover here, you might want to check stackoverflow.com to see if someone has already provided an answer. This is also a great place to ask new questions (please use the spring

  • SQL Azure での日本語の扱い - お だ のスペース

    テーブル/カラム名に日語を使う事 元ネタ: あれとアレは混ぜるな危険 テーブル/カラム名に日語を使うことですが、使えるなら使っても良いんじゃない?と思います。 意図の伝わりやすさはメリットじゃないですかね?ツールが対応していないかもっていうのはあるかもしれませんが…。 現場の慣習に合わせますが、個人で使うなら日語を使いますね。 また オンプレミスの SQL Server でテーブル/カラム名を日語で付けている場合だってありますし、それを Windows Azure Services | Windows Azure で同期を取るケースだって出てくるんじゃないかな? ※SQL Azure Data Sync でテーブル/カラム名を日語付けている場合は、試していないので出来るか不明。。 日語データの文字化け 元ネタ: 2010-10-30 - waりとnaはてな日記 SQLWorld

    SQL Azure での日本語の扱い - お だ のスペース
  • Microsoft Azure: クラウド コンピューティング サービス

    ソリューション おすすめ すべてのソリューションを表示 (40 以上) Azure AI 移行して AI の時代にイノベーションを起こす インテリジェントなアプリの構築とモダン化 クラウドスケールの分析 Azure AI インフラストラクチャ 適応型クラウド Azure のネットワーク セキュリティ AI Azure AI Azure を利用した責任ある AI Azure AI インフラストラクチャ インテリジェントなアプリの構築とモダン化 ナレッジ マイニング Azure 上の Hugging Face Azure 機密コンピューティング アプリケーション開発 インテリジェントなアプリの構築とモダン化 開発とテスト DevOps DevSecOps サーバーレス コンピューティング アプリケーションとデータのモダン化 Azure でのロー コード アプリケーション開発 クラウド移行とモダ

    Microsoft Azure: クラウド コンピューティング サービス
  • あまりにも良くあるAzure問答集 - Azure息子

    はい、どうもー。@k1hash です。 Windows Azureアドベントカレンダーの兼ね合いでブログを書いております。 最近、公私ともにWindows Azureの問い合わせが増えて、嬉しいのですが、 どうも毎度同じようなことを話すようになってきたのでよくある問答集を作ってみました。 これ見といて、で序盤の検討事項がある程度済ませられるようになれば幸い。 ※だいぶフランクに書いだけど、脳内はクラウディアさんの音声に変換して聞くとよいでしょう。 うちの会社の**システムはAzureで動きますか?まずだけどデータをクラウドに置くに際して、遵法系やお客さんのポリシーは確認した?データによっては国外に持ち出せないもの、お客さんのポリシーに反するものがあるので、良く確認してね。 ユーザーのIDとパスワードレベルであれば、暗号化して保存すれば、解決するケースは多いかもね。 で、国外に置けないケース

    あまりにも良くあるAzure問答集 - Azure息子
  • file_fdw

    F.14. file_fdwfile_fdwモジュールは、サーバのファイルシステムにあるデータファイルにアクセスするのに使用できる外部データラッパfile_fdwを提供します。 データファイルはCOPY FROMで読むことのできるフォーマットでなければなりません。 詳細は COPY を参照してください。 そのようなデータへのアクセスは現時点では読み取り専用です。 このラッパーで作成された外部テーブルには以下のオプションを設定することができます。 filename読み込むファイルを指定します。必須です。絶対パスでなければなりません。 formatファイルフォーマットを指定するもので、COPYのFORMATオプションと同じです。 headerファイルがヘッダ行を持つか指定するもので、COPYのHEADERオプションと同じです。 delimiterファイルのデリミタ文字を指定するもので、COPY

  • メモリー管理に失敗したJavaアプリの実例

    O/Rマッピング・ツールと運用設計ミス 稿では、Java EEアプリケーションで使われることの多いO/Rマッピング・ツールにおけるサイジングの重要性について解説します。 今回取り上げる事例は、JavaのWebアプリケーション開発ではかなり有名なO/Rマッピング・ツールである「iBatis」*1を使ったものです。 [*1] 現在は、MyBatisと名前を変えて、継続的にリリースされています。 [mybatis[http://www.mybatis.org/java.html]] , [google code:mybatis[http://code.google.com/p/mybatis/]] 問題となったアプリケーションでは、データベースの接続からクエリーを投げるところまで、全面的にiBatisを利用していました。採用された理由は、既存のSQLを利用しつつ、動的SQLを簡単に作成できると

  • 『実行したSQL文のログを出力するには?』

    Java Springの逆引きメモJavaのSpring frameworkのメモを書いていきます! 初心者の勉強ノートなので間違いがあるかもしれませんが、何かヒントになることがあれば幸いです。 SpringJDBCを使用している場合にSQL文をログ出力するには簡単な方法があります。 実は、DEBUGモードにするとSpringJDBCはSQL文を出力してくれます。 しかし、さすがDUBUGモード。 SQL文以外も多量のログが出力されます。 ですので、Log4jの機能を使用して制限します。 【Log4jのpropertiesファイル】 以下の設定を追加します。 stdoutに出力する場合のイメージです。 #SpringJdbcのログ出力(SQL文) log4j.logger.org.springframework.jdbc.core.JdbcTemplate=DEBUG, stdout lo

  • INSERT文にSQLインジェクション脆弱性があるとどんな被害が出るのか? — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    INSERT文の悪用の可能性について回答しました SQLインジェクションについて教えて下さい<form><th>ご住所... - Yahoo!知恵袋 http://t.co/VXtAcXiAVs — 徳丸 浩 (@ockeghem) 2015, 1月 6 という徳丸さんのツイートがありましたので、ちょっと考えてみました。 サンプルコード 上記の質問にあるコードを動作するように最低限補完しました。 <form method="post"> <th>ご住所</th> <td><input type='text' name='address'></td> <th>メールアドレス</th> <td><input type='text' name='mail'></td> <input type='submit' value='送信'> </form> -------------------- <?

    asa_ca3
    asa_ca3 2015/01/06
    一発でやるんじゃないってところか。勉強になりました。
  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • 『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』

    サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。

    『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』
  • ダミーデータを作るSQL

    OracleでDual表からダミー仮想表を作るSQLのサンプル 1. 面倒だけど柔軟なデータ SELECT 'A' as KEYS , 100 as SUBKEY , 50 as VALUE from dual union all SELECT 'A' as KEYS , 200 as SUBKEY , 60 as VALUE from dual union all ... --※SELECT...をコピペしまくる 結果: KEYSSUBKEYVALUE A10050 A20060 2. 連番が欲しい select level as seq from dual connect by level <= 3 --※level <= 3を適宜書き換え 結果: SEQ 1 2 3 3. 連番じゃないけど順序性がありそげなデータが欲しい(CSVを列に変換) select regexp_substr(