今朝方、CSVに対してSQLを実行できる「csvq」というライブラリを知りました。業務の関係で快適にCSVを操作する方法を求めていたこともあって、操作感等含めて試してみました。 mithrandie/csvq 特徴 関係するオプションも合わせて表記してみました。 標準のデリミタがコンマ--write-delimiter 出力先指定オプションがある --out 色つけできる --color 標準で罫線がついてる--format タイムゾーンの設定ができる --timezone 手軽に対話シェルとして実行できる Ambiguous Character を全角文字の幅で表示可能--east-asian-encoding ゼロ幅スペースを半角文字としてカウント--count-format-code 改行コードを指定可能--line-break CSVに対して各種操作を行う際に、あると助かるオプショ
MySQL の AUTO_INCREMENT 属性を使っている場合、整数型の上限に達しないか注意する必要があります。たとえば INT 型だと約 21 億 4700 万、unsigned が指定されていると倍の約 42 億 9400 万が上限です。 MySQL :: MySQL 5.7 Reference Manual :: 11.2.1 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT 上限に達する前により大きな型にマイグレーションしなければなりませんが、そのためには上限まであとどれくらいかを調べる必要があります。各テーブルで LAST_INSERT_ID() を叩けば最後に生成された AUTO_INCREMENT の値を取得できますが、すべてのテーブルを網羅的に調べる必要がある
データ分析部インターン生の小川です。インターンでは主に動画収集のロジック実装に取り組んでいました。 Gunosyではログの管理にRedshiftとBigQueryを使用しています。 サービスはAWS上で動いているものも多いので基本はRedshiftで、ログの量が多いものやアドホック分析に用いるものはBigQueryに格納しています。 この2つのサービスでSQLの書き方が微妙に異なるところがあり、もどかしい経験をしたので、今回は、よく使うSQLの文法でRedshiftとBigQueryで表現が異なる所をまとめてみようと思います。 BigQueryの導入についてはこちらの記事をご覧ください。 また、この記事ではBigQueryはStandard SQLで記述していきます。 data.gunosy.io 日付・時刻関数 現在時刻(UTC) 現在時刻(JST) 現在の日付(UTC) 現在の日付(J
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
SQL Server Management StudioでのSQL作成時に、SQL文を整形してくれるツールが無いかと思い探したところ、Poor Man's T-SQL Formatterというアドインが紹介されているのを見つけました。 SQL Server Management Studio で SQLを一発整形 – gomokulog 作成元のサイトはこちら。 www.architectshack.com インストールすると、SQL Server Management Studioのメニューバー、[ツール]のところに「Format T-SQL Code」というのが追加されます。対象SQLをマウスで選択した状態でこれを選ぶと一発整形。また、ショートカットの場合「Ctrl-K, Ctrl-F」でも実行されるのでいちいちマウスに手をやる必要もありません。 こちらは、仕事で使っている SQL S
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
下図のように、「縦持ち」のテーブルを「横持ち」に置き換えることをピボット(pivot)、逆に「横持ち」のテーブルを「縦持ち」に置き換えることをアンピボット(unpivot)と呼びます。これらの変換を行なう方法をまとめました。 標準SQL Presto Hive Pandas (Python) 標準SQL SQL-like なクエリ言語ならどこでも使える書き方です。 Pivot SELECT uid, max(CASE WHEN key = 'c1' THEN value END) AS c1, max(CASE WHEN key = 'c2' THEN value END) AS c2, max(CASE WHEN key = 'c3' THEN value END) AS c3 FROM vtable GROUP BY uid ;
http://www.momo-lab.net/kibidango/cbbs.cgi?mode=one&namber=883&type=167&space=135&no=0 SQL Server / MSDE で、テーブルや列にコメントを定義するためのストアド。 EXECUTE setcomment N'テーブル名', NULL, N'コメント' とか EXECUTE setcomment N'テーブル名', N'列名', N'コメント' って感じで利用。 # Oracle でいう所の # COMMENT ON TABLE テーブル名 IS 'コメント'; # COMMENT ON COLUMN テーブル名.列名 IS 'コメント'; # みたいな感じで。 <xmp> ---------------------------------------------------------
はじめに 本文書はSQLのスタイルガイドです。 PythonやRubyのようなプログラミング言語には有名なスタイルガイドがあり、共通のレイアウトルールに沿ったインデントや命名規則に則ったコードが生み出されています。 一方、SQLには知名度のある統一されたスタイルガイドがありません。 そのため、思いのままに書かれたSQLが散見されます。 もちろん、SQLを使ってアドホックな分析を行う場合は、必ずしもルールに沿う必要はなく、効率よく書いても良いと思います。 しかし、Webサービスやバッチの中に組み込むようなもの、つまり自分以外の誰かに読まれるSQLは、多くのプログラミング言語同様に何らかのスタイルガイドに沿うことで多くのメリットを享受できると思います。 クエリが構造化され、可読性が高まる バグの発見や修正が容易になる 改行位置やインデントなどのフォーマットの悩みが解消される スタイルガイドを共
using System.Data.SqlClient; namespace Implem.Sample { class Program { static void Main(string[] args) { var cmd = new SqlCommand("select [abc].[a], [abc].[b], [abc].[c], [abc].[d], [abc].[e] from [abc] where @p1"); cmd.Parameters.AddWithValue("p1", "hoge"); Debugs.WriteCommandTextForDebugging("dbname", cmd); } } } using System.Collections.Generic; using System.Data.SqlClient; using System.Diagnos
こちらの記事が大変参考になりました(というよりもこちらの記事を見て思い付きました)。 T-SQL の パーサーとジェネレーター(ScriptDom)の紹介 - お だ のスペース ScriptDom でクエリを改変する - お だ のスペース 動機 ページング処理用に検索結果の総レコード数を取得するため、検索 SQL を文字列置換して SELECT COUNT(*) FROM ([元の SQL]) に書き換えようと頑張っているコードを見かけました。 しかし、単純に SQL を COUNT(*) のクエリで包むだけでは不十分で、内側の SQL から ORDER BY 句を取り除く必要があります。(一部の場合を除きインラインビュー内には ORDER BY 句が書けない) これらの SQL 文の操作において、単純な文字列置換では SQL コメントを含む場合などに対応しきれなくなる可能性があります
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く