by shigemk2

当面は技術的なことしか書かない

presto

approx_distinct

推定値の算出 数に厳密な正確性を求めないときに有効 第二引数で誤差の許容範囲を設定 なお、誤差を許容するのであってroundするわけじゃない

presto 0.208

特筆すること特にない https://prestodb.io/docs/current/release/release-0.208.html

Presto スキーマとテーブル参照

ドキュメントには書いていないけど、 select table_schema, table_name from information_schema.tables; といったクエリでスキーマとテーブルをすべて参照できる

Presto row_number/rank/dense_rank

prestoにもrank/desne_rank/row_numberがある row_number 機械的にidを割り振る rank 重複値は同順位だが、次の順位は重複ぶんだけ飛ばす dense_rank 重複値は同順位だが、次の順位は+1 クエリ。 WITH dataset AS ( SELECT * FROM ( VALUES 10, 100, 500, 50…

presto 0.200

presto 0.200 だいたい10日くらいのスパンでマイナーバージョンアップするのに、今回は意外と早い。 でもlog()関数削除されたことくらいかな。 https://prestodb.io/docs/current/release/release-0.200.html

presto date_parse

presto date_parse dateな文字列をパースしてtimestampに変換する 使い方は公式のテストコードを読むこと 日付のフォーマットはMySQLのものに準拠 https://prestodb.io/docs/current/functions/string.html

memo presto 0.199

memo presto 0.199 hmac系関数の追加 array_sort関数 ラムダ機能の追加 group byとunion allのコンボで集計する時のメモリ使用量を節約 https://prestodb.io/docs/current/release/release-0.199.html

memo from hive to presto manual

memo from hive to presto manual 配列の添字演算子は完全式をサポート 配列範囲外へのアクセスは例外 配列インデックスは1から とか、色々書いてる https://prestodb.io/docs/current/migration/from-hive.html

presto union vs union all

presto union vs union all 御覧頂いて。Presto 0.198 union allは全表示だけど、unionは重複データは消える presto> SELECT 13 UNION ALL SELECT * FROM (VALUES 42, 13); _col0 ------- 42 13 13 (3 rows) presto> SELECT 13 UNION SELECT * FROM (VALUES …

memo presto variance

memo presto variance 分散を出す集約関数 variance var_pop var_sample https://prestodb.io/docs/current/functions/aggregate.html

memo presto approx_percentile

memo presto approx_percentile 分布に最も近い値を取り出す感じ。 percentile→分布 https://prestodb.io/docs/current/functions/aggregate.html

memo presto map

memo presto map ここにある関数はmapのデータ構造を操作するものであって、Scalaのmapてきな使い方じゃない https://prestodb.io/docs/current/functions/map.html

presto join type

presto join type JOIN だけだと INNER JOIN として扱われる。そうですね。 [ INNER ] JOIN LEFT [ OUTER ] JOIN RIGHT [ OUTER ] JOIN FULL [ OUTER ] JOIN CROSS JOIN https://prestodb.io/docs/current/sql/select.html

presto 0.196

まだrelease note出ない Release 0.196 · prestodb/presto · GitHub

presto 0.195

あんまりぴんとくるものがなかった 11.1. Release 0.195 — Presto 0.195 Documentation Release 0.195 · prestodb/presto · GitHub

presto array_sort

presto array_sort こういうかきかた テストコードをみたら書き方が分かる arrayをソートするやつ ARRAY_SORT(ARRAY[2, 3, 4, 1]) presto/TestArrayOperators.java at master · prestodb/presto · GitHub presto/presto-main/src/test/java/com/facebook/pre…

presto array

prestoのarrayにはlength的な関数はなかった… 6.15. Array Functions and Operators — Presto 0.194 Documentation

presto url_encode url_decode

presto url_encode url_decode PrestoではURLエンコードやデコードも出来るとな。 presto/TestUrlFunctions.java at master · prestodb/presto · GitHub

presto extraneous input

presto extraneous input このように書くと extraneous inputってなるので select date_diff(timestamp datetime1, timestamp datetime2) from table; このように書いてごまかした。 select date_diff(cast(datetime1 as timestamp, cast(datetime2 as times…

presto values

presto values インラインテーブルを定義。 だから、擬似的にテーブルが作れる。 SELECT id FROM ( VALUES (1, 'a'), (2, 'b'), (3, 'c') ) AS t (id, name) 擬似的にテーブルが作れるので、distinctなども実行できる。 SELECT DISTINCT id FROM ( VALUES 'a…

usage presto date_diff

usage presto date_diff 使い方がテストコードにのっていた。 select date_diff('second', timestamp1, timestamp2) L586-L594 https://github.com/prestodb/presto/blob/master/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTim…

presto with

presto with withよくわかんなかったけど、サブクエリの簡素化だね、やっていることは。 WITH dataset AS ( SELECT * FROM ( VALUES (1, 'A'), (2, 'B'), (3, 'C'), (4, 'D'), (5, 'A'), (6, 'B'), (7, 'C'), (9, 'A'), (10, 'B'),(11, 'C'), (13, 'A'),(14,…

presto explain

RedashからAthenaでexplainを実行してみたけどサポートしてないtype的なエラーで怒られた。 8.18. EXPLAIN — Presto 0.193 Documentation AWS Athenaを使って 30TBのWeb行動ログ集計を試みた from Tetsutaro Watanabe www.slideshare.net

memo tablesample

memo tablesample TABLESAMPLEという構文がありまして、 SELECT * FROM users TABLESAMPLE BERNOULLI (50); みたいな感じで使える。使えるのだけれど、説明が何を言っているのか分からない。 https://prestodb.io/docs/current/sql/select.html なお、 BERNO…

presto select test

presto select test もういつもそうだけどテストコードとかを見ていたほうが良いことがありまして、 selectぶんの使い方すらテストコードを見たらなんとなく分かったりする やりたかったのは、疑似レコード。

parse_datetime

parse_datetime Parses string into a timestamp with time zone using format. ってあるけど書き方がよく分からない。 テストコードを見るとなんとなくイメージが湧く。 https://github.com/prestodb/presto/blob/master/presto-main/src/test/java/com/fac…

presto current_timestamp

presto current_timestamp こんな感じ。 select date_format(current_timestamp AT TIME ZONE 'Asia/Tokyo', '%Y-%m-%d'); https://prestodb.io/docs/current/functions/datetime.html

presto RIGHT JOIN

presto RIGHT JOIN いつも通りRIGHT JOINが使えます https://prestodb.io/docs/current/sql/select.html

release 0.191

release 0.191 こんなものか General Changes Resource Groups Changes CLI Changes Hive Changes Thrift Connector Changes MySQL, PostgreSQL, Redshift, and SQL Server Changes https://prestodb.io/docs/current/release/release-0.191.html

presto timestamp

timestampは関数じゃない。型。 select timestamp '2012-08-08 01:00'; みたいな書き方はOKだけど select timestamp col1 from tbl1; みたいな書き方はColumn 'timestamp' cannot be resolvedって怒られて失敗する。 https://prestodb.io/docs/current/funct…