We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
こんにちは、VASILYバックエンドエンジニアの塩崎です。 VASILYでは様々なログデータの分析にBigQueryを使用しています。 インデックスについて何も考えなくても良いのが特に便利です。 さて、そんなBigQueryですが、数か月前にStandard SQLという新しい仕様のSQLがサポートされました。 BigQuery 1.11, now with Standard SQL, IAM, and partitioned tables! VASILYでも徐々にStandard SQLに移行をしているので、使い勝手や従来のSQLからの移行方法についてまとめておきます。 Standard SQLとは SQL:2011に準拠しつつ、配列や構造体等の構造化データを扱えるように拡張されたSQLです。 Standard SQLの登場によって、以前からあったSQLはLegacy SQLと呼ばれるよ
はじめに 「達人に学ぶDB設計」、「SQLアンチパターン」を読んだのでDB設計をする流れとその過程でのチェックポイントをまとめてみました。 今回は本に載っているものの中でも特に重要そうな部分に絞ってみました。 さらに詳しいことを知りたい方は本を購入してみてください。個人的には達人に学ぶDB設計徹底指南書のほうがおすすめです。こちらだけあれば十分だと思います。 DB設計には大きく分けて論理設計と物理設計の二つがありますが、今回はアプリケーション開発でメインとなる論理設計の部分に焦点をあてて説明をします。 一番最後にチェックポイントだけをまとめた章を用意したので、チェックポイントだけ知りたい方は最後だけ見ていただければと思います。 DB論理設計の流れ DB論理設計は以下のようなステップで進めていきます。 エンティティの抽出 エンティティの定義 正規化 ER図の作成 以下では各ステップごとに章を
2016 - 09 - 02 SQL でのデータ分析のススメ SQL 分析 データ分析 list Tweet こんにちは, 開発部のはちやです. 今回は, 今やサービスを運営する会社であればどこでも行われているであろうデータ分析について, WEB開発者の方を対象に 「 SQL でのデータ分析のススメ」と題してご紹介したいと思います. SQL でのデータ分析がおすすめな理由 分析技術の進歩によりデータが比較的容易に取得/抽出できるようになった昨今, データ分析が以前に増して活発に行われるようになってきていると感じます. そんなこんなでデータ分析をしたいWEB開発者の方が増えてきているのではないでしょうか(僕はそうでした) しかし, 「データ分析したいけど, 何を使えばいいのかよくわからない」「何を学習すればいいのかよくわからない」というWEB開発者の方がいらっしゃると想像します(僕がそうでし
2012年04月03日02:05 カテゴリSQLDB2 for IBM i 素直なSQL の書き方 -再帰クエリ- 部品表の展開とか経路の探索、組織や体制をたどったりするのはプログラムを書かないとできない、なんて思っていませんか? 実は SQL で階層関係を処理するのは特段難しいことではありません。(データ量次第ですが、いまどきのマシンであればパフォーマンスもやはり特段問題ないでしょう) 標準SQL での、そういった階層関係を処理するための仕様は「再帰SQL」とか「再帰クエリ」と呼ばれるものです。今回は、そのカンタンな紹介をしたいと思います。Wiki や「新しい業界標準「SQL99」詳細解説」に詳しい解説があるのでぜひそちらもご参照ください。 例)プロジェクトの階層を表示してみよう それでは例で見ていきましょう。 DB2 for i のサンプル・データベースから PROJECT テーブルを
先日、この記事を読んで分析のハードルを下げること大事だよね、というのを思い出したのでつらつらと書いてみようと思います。 qiita.com 内容としては正直タイトル詐欺で、SlackからRDSにクエリ発行できるようにして、各種権限を持っているエンジニアでなくても分析できるようになったよ、という話です。 ここでいう「データ活用の民主化」というのはかっこ良く言ってみたかっただけで、「データ分析を生業にしている人以外もデータを活用してビジネスを進められるようになる」というくらいのニュアンスだと思って下さい。 「データ分析」というとアナリストの人がやること、みたいな職務が分かれている環境もあるとは思いますが、そうではない会社(前職)の一例です。 データ活用が広まった流れ 数秒〜数十秒で対話的にクエリが返ってくると、トライアンドエラーが100倍くらいできる 今まで実行計画を気にして避けていたことにガ
SQL is the winning language of Big Data. Whether you’re running a classic relational database, a column store (“NewSQL”), or a non-relational storage system (“NoSQL”), a powerful, declarative, SQL-based query language makes the difference. The SQL standard has evolved drastically in the past decades, and so have its commercial and open source implementations. In this fast-paced talk, we’re going t
composer require zonuexe/simple-routing zonuexe/objectsystem zonuexe/tetosql zonuexe/objectsystem: PHPのクラスに型を付けたり機能追加できるよ zonuexe/tetosql: SQLをちょっと安全に書けるPDOのラッパーだよ zonuexe/simple-routing: シンプルお手軽なURLルーターだよ いちおう、 どれも自作(または自分でメンテナンスしてるやつ)だよ! これらのライブラリの説明についてはQiitaのシンプルなルーティングがしたかったとかprivate/protectedなプロパティを外部から読み込み可能にするみたいな記事に書いたけど、この記事でも軽く説明するので後で読んでくれると良いかも! ファイルの読み込みについて Composerはいかしたライブラリの依存管理ツー
SQLをパースすることに迫られてPythonで自作していたが、rubyで書いたほうがより都合が良かったので書きなおしかーとなったところで見つけたいいもの。 ただし、READMEにどおりに使ってみても使えなかったのでメモ。 インストール このモジュールを使えばパースできる。 https://github.com/cryodex/sql-parser gemでのインストールは以下のようにする。 irb(main):001:0> require 'sql-parser' irb(main):002:0> parser = SQLParser::Parser.new irb(main):003:0> ast = parser.scan_str('SELECT * FROM users WHERE id = 1') irb(main):004:0> ast.select_list.to_sql No
本連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基本構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。本連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーのコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) 今回も、前回「極めよう!分析関数によるSQL高速化計画」に引き続き、分析関数の中からウィンドウ関数とレポート関数を取り上げて説明します。 ウィンドウ関数を使った分析 それでは、ウィンドウ関数を利用して、分析してみましょう。ウィンドウ関数を使用して、累積集計、移動集計、集中集計を計算できます。今回は、ウィンドウ関数を簡単に理解してもらうために、累積集計について説明します。 ウィンドウ関数には、SUM()、AVG
github.com sqllaというSQLビルダーを書きました。特徴はある程度型安全であること、リフレクションを使用していないこと、既存のクエリビルダよりある程度高速であることです。 使い方 インストールはごく簡単で、goが入っている環境で以下のコマンドを打ちます。 $ go get github.com/mackee/go-sqlla/cmd/sqlla まず以下の様なテーブル構造を表したstructを用意します。 そして、sqllaに必要なタグを付加していきます。 また後述のgo generateで必要なコメントも足しましょう。 user.go //go:generate sqlla //+table: user type User struct { ID uint64 `db:"user"` Name string `db:"name"` } そしてこのファイルが置かれているディレ
エンジニアの南直 @south37 です。 速習会の内容 2015年12月10日に、 Wantedly のオフィスにてRailsエンジニアのためのSQLチューニング速習会を開催しました! RailsはRDBをたたく際に、Active Recordが最適化をよしなにやってくれるので複雑な処理やサービスの規模が小さい段階ではRDBに向き合う場面はすくないかと思います。しかし、サービス規模が大きくなってきたり、複雑な処理を行ったり、高速化に本気で向き合うときは、Active Recordの仮面をはぎとりSQLと向き合って細かなチューニングをおこなっていく必要があります。 今回の速習会では、SQLのチューニングの基礎として、SQLが実行されるときRDBの中ではなにがおきているか、Explainの読み方、Indexの張り方などをまとめています。 発表スライドはこちら Wantedly速習会 Want
SQLアンチパターンに登場する各アンチパターンを、出来る限り1行でまとめて俯瞰するための一覧。 記憶をたどるためのキーワードのインデックスとして使うことを目的にしている。 また、週次で別途読み合わせの勉強会を行っているため、以下の一覧は勉強会の都度更新され、併せて勉強会資料へリンクする。 Jaywalking(信号無視) 1対多または多対多の関係のテーブル間の id 管理において、Varcharなどのカラムを用意して「1,2,3,4,5」などの区切り文字で区切った値を代入すること Naive Trees(素朴な木) 親子関係を持つテーブル間の id 管理において、中間テーブルを用意せず、parent_id のような親の ID を意味するカラムを用意して代用すること ID Required(とりあえずID) どのようなテーブルにも id という名前の PRIMARY KEY を用意することだ
『RailsエンジニアのためのSQLチューニング速習会 - connpass』に参加してきました。すごく勉強になったので、 そのときのメモです。@minami7o さんありがとうございました! あとこの記事は、エムスリー Advent Calendar 2015 - Qiitaの13日目です。 🍄 スライドWantedlyの @minami7o さんの発表スライドです。 🐝 説明用のブランチ勉強会で共有されたテストデータを使えるGitHubのブランチです。 south37/sql-tuning - GitHub git clone git@github.com:south37/sql-tuning.git cd sql-tuning bin/rake db:create pg_restore -j 4 --verbose --no-acl --no-owner -d sql-tunin
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く