HiveQLではスピードに難を感じていたため、私もPrestoを使い始めました。 MySQLやHiveで使っていたクエリを置き換える時にハマったTipsをまとめていきます。 AWS AthenaでPrestoを使っている方も増えてると思うので、Presto標準関数での記述例も拡充していきます。 Prestoとは Prestoはオンメモリで動く分散SQLエンジンで、その進化は目を見張る物です。 発表された当時は色々な成約があり使うことを躊躇していましたが、2015年頃からはもう使わない理由はなくなりました。 アドホックに使えるとても高速なSQLエンジンですので、バッチ向けのHiveのように実行結果を待つ時間はほとんどありません。 Hiveですと1つ1つの実行に時間が掛かるので、クエリに慣れていない新参者には辛い物がありました。 しかしPrestoではインタラクティブに実行できますので、トライ
スポンサード リンク ORACLE9iから、WITH句がサポートされました。 WITH句で指定したSQLの結果は、VIEWの様にSQL内部から参照することができます。 これにより、インランインビュー、や、内部結合、外部結合を使った複雑なSQLを分かりやすく見せることが出来ます。 構文は、WITHキーワードの後に、副問合せSQL結果のVIEW名と、ASキーワードに続いて括弧内にSQLを指定します。 以下の例では、副問合せ結果の「view01」と表「table01」を内部結合しています。 with view01 as ( select column99 from table99 where column01 = '01' ) select view01.column99, table01.column77 from table01, view01 where table01.column99
PostgreSQLの基本的(よく使う)コマンドです。 [toc heading_levels="2"] データベースの一覧を見る データベースの一覧を見る方法です。 構文 \l 使用例 postgres=# \l List of databases Name | Owner | Encoding -----------+----------+---------- postgres | postgres | UTF8 sasuke | postgres | UTF8 sasuke2 | postgres | UTF8 template0 | postgres | UTF8 template1 | postgres | UTF8 test1 | postgres | UTF8 (6 rows) テーブルの一覧 テーブルの一覧の確認方法です。 構文 \d 使用例 postgres=# \d L
Redshiftで色々環境構築や調査を進めて行くと、割とちょいちょい良く使うSQL等も出て来ます。そこでこのエントリでは、普段使っている便利系SQL、都度アクセスしてはコピペして使ってるようなSQL、更にはそれらにちょっと一手間加えたSQL等を集約し一覧としてみる事にしました。 必須なもの、また『これも使えるね』というようなものについては適宜追加更新を行っていこうと思ってますので、オススメのSQL文があれば是非教えて頂けると幸いです。 目次 S3からのCOPY処理エラーに関するログを確認する COPY処理時に出力させるエラー件数量を制御する 指定テーブルのテーブル定義を確認する(type1:psqlコマンドで簡易表示) 指定テーブルのテーブル定義を確認する(type2:distkey,sortkey等も表示) 指定テーブルのテーブル定義を確認する(type3:コメント文も併せて表示) テー
SQLite の環境で INTEGER PRIMARY KEY に AUTOINCREMENT を合わせて設定した場合にどのように自動的に値が割り当てられるようになるのかについて解説します。また今までに割り当てられたことのある最大の値を確認する方法を合わせてご紹介します。 AUTOINCREMENTを設定した場合の値の割り当てルール カラムに対して INTEGER PRIMARY KEY を設定した場合、データを追加した時に INTEGER PRIMARY KEY を設定したカラムの値を指定しないと自動的に値が格納されます。自動的に格納される値は、対象のカラムに格納されている最大の値に 1 を加えた値となります。この値は以前に割り当てられたことがあるかどうか関係がないため、データの追加と削除を繰り返していると以前に格納されたことがある値が再度カラムに格納される場合があります。 カラムに I
Schema-less Stream Processing with SQL Norikra is a open source server software provides "Stream Processing" with SQL, written in JRuby, runs on JVM, licensed under GPLv2. Schema-less event streams (called as 'target') Input/Output event streams as JSON objects, which can contain any fields with a target name. SQL processing Norikra's query is SQL with window specifier support (It's actually Esper
Hadoop Advent Calendar 2013 4日目の記事です tl;dr explainとjob historyを読め 1 reducerは悪 data skewは悪 前書き みんな大好きSQLでHadoop上での処理を実行できるHiveにはみなさん普段からお世話になっていることでしょう。ちょっと調べ物でググる度に目に入る愛らいしいマスコットが、荒んだ心に清涼な風をはこんでくれます。 ですがHiveのクエリ言語はSQLではなくHiveQLですし、実行エンジンもRDBのそれとは全く異なるMapReduceです。SQLのつもりでHiveQLを書いていると地雷を踏んでしまうことがまれによくあります。本エントリでは陥りがちなHiveQLの落とし穴を2つ紹介します。 例1 SELECT count(DISTINCT user_id) FROM access_log SQLに慣れた方であれ
Apache Hive The Apache Hive ™ is a distributed, fault-tolerant data warehouse system that enables analytics at a massive scale and facilitates reading, writing, and managing petabytes of data residing in distributed storage using SQL. Github Mail Docker Community Apache Hive is a distributed, fault-tolerant data warehouse system that enables analytics at a massive scale. Hive Metastore(HMS) provid
目次 Hiveとは Hiveの設定 HiveQL構文(DDL) DataBase/SCHEMAの作成 Database/SCHEMAの削除 Tableの作成 Tableの削除 Table名変更 Partition作成 Partitionの削除 Columnの変更 Columnの追加/置き換え TableのProperty変更 SerDe Propertyの追加 HiveQL構文(SQL) テーブル一覧表示 テーブルの内容を表示 基本的なSELECT文 WHERE句(条件指定) DISTINCT(重複削除) ORDER BY / SORT BY句(ソート) GROUP BY句(グループ化) HAVING句(グループ化後の条件) LIMIT句 JOIN(テーブル結合) 抽出カラムを正規表現で指定 UNION(結果の結合) SUBQUERY LOAD(データの読み込み) Hiveを使う 事前準備
1. 初めに (書きかけ) SQLite は RDMS (関係データベース管理システム) の一種です。 通常の RDMS と異なり面倒なセットアップが不要で、簡単に利用することができます。 通常のファイル並に簡単に扱えるので、 今まではテキストファイルなどに保存していたデータは sqlite に保存するようにすると便利です。 2. Python から SQLite を使う もちろん、Python からも SQLite を利用できます。 Python 2.5 から sqlite3 が build-in package として配布されているので、 すぐに使うことができます。 次の例のように、データファイルに connect するだけで、使うことができます。 データファイルは、 存在しなければ自動的に作成され、 存在すれば、それが開かれます。 また、データの保存はデータベースオブジェクトの co
軽量・高速なデータベースSQLiteをPythonから扱うためのライブラリ。 インストール Python2.5から標準ライブラリに入りました。 インストール作業は不要です。 使用方法 sqlite3をインポートする #!python2.6 # -*- coding: utf-8 -*- import sqlite3 データベースを作成する con = sqlite3.connect("data.db") ファイルがすでに存在するときはファイルを開く。 ファイルがないときは新しいデータベースを作成する。 isolation_levelにNoneを指定すると、自動コミットモードになります。 con = sqlite3.connect('temp.db', isolation_level=None) 特別な名前である ":memory:" を使うとRAM上にデータベースを作ることもできます。 c
1. Datatypes In SQLite Most SQL database engines (every SQL database engine other than SQLite, as far as we know) uses static, rigid typing. With static typing, the datatype of a value is determined by its container - the particular column in which the value is stored. SQLite uses a more general dynamic type system. In SQLite, the datatype of a value is associated with the value itself, not with i
Mouseover dictionaryの辞書登録をPythonを用いて直接行ってみました。流れとしてはCSVファイル(PDIC)を読み込んでSQLiteのDBを作成し、Firefoxのフォルダに放り込んだだけです。rubyでやっておられる方がいたので真似してpythonの勉強がてらやってみました。 PDICでCSV形式の辞書ファイルを作成 エンコードをUTF-8に変換 下記のプログラムでSQLiteのDBを作成 /.mozilla/firefox/default.*/に出来たmoseoverdictionary.sqliteを入れる。 こんな流れで適用しました。PDICを使ってしまっているので邪魔くさいだけのような気がしますが、趣味なので仕方ありません。 #!/usr/bin/env python #-*- coding:utf-8 -*- import sqlite3 import c
データベースをまるごとメインメモリ上で処理することにより、従来のハードディスクベースのリレーショナルデータベースよりも劇的な高速化を実現するインメモリデータベースであるMemSQLの最新版「MemSQL 2.0」が公開されました。 MemSQL 2.0はインメモリのスピードとSQLでの問い合わせ、スケールアウト機能、そしてエンタープライズ対応の可用性など、4つの特徴を持つと説明されています。 In-memory architecture Ad hoc SQL-based analytics Horizontal scale-out on commodity hardware Enterprise-grade durability and high availability スケールアウトでデータウェアハウスに対応 MemSQL 2.0はインメモリデータベースの特徴である高速な処理に加えて、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く