by shigemk2

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

Presto date_diff 実装

  • 言語はJava
    • 関数の実体
      • diffDate
      • diffTime
      • diffTimeWithTimeZone
      • diffTimestamp
    • 引数のデータ型によって(JavaじゃなくてSQLの)呼び出す関数が変わる
    • ISOChronologyとかJodaとかで差分をとってる

presto/DateTimeFunctions.java at 28ec8f43fec01a6cd7bdec2d48852bf133ad2896 · prestodb/presto · GitHub

IsoChronology (Java Platform SE 8)

DurationField (Joda-Time 2.10.2 API)

awscli 1.16.183

  • api-change:rds: Update rds command to latest version
  • api-change:opsworks: Update opsworks command to latest version
  • api-change:glue: Update glue command to latest version
  • api-change:acm-pca: Update acm-pca command to latest version
  • api-change:health: Update health command to latest version
  • api-change:iotevents-data: Update iotevents-data command to latest version

Release 1.16.183 · aws/aws-cli · GitHub

embulk guessとcsvとtimestamp

YYYY-MM-DD なデータを持つカラムを持つcsvファイルをembulk guessする。 すると、以下のようなcolumnsができる。

    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}

この状態で、embulk runとかembulk previewすると、ファイルには 2019-01-01 00:00:00.000000 +0000 という形で時刻まで出力される。 columnsのformatで指定した日付書式は、csvファイル内の文字列をtimestampに変換する際に使われるもので、出力用の書式ではないらしい。

Configuration — Embulk 0.8 documentation

Embulkローカルファイル入力メモ(Hishidama's Embulk input-local-file Memo)

GitHub - joker1007/embulk-filter-ruby_proc: Apply ruby proc code on filtering

なので、embulk-filter-ruby_procなどを用いて、改めてYYYY-MM-DDなStringに変換する必要がある。

filters:
  - type: ruby_proc
    columns:
      - name: time
        proc: |
          ->(name) do
            time.to_s[0,10]
          end
        type: string

presto case when

6.3. Conditional Expressions — Presto 0.221 Documentation

The result for the matching value is returned. If no match is found, the result from the ELSE clause is returned if it exists, otherwise null is returned.

else書いてないときにelseに相当するデータが来たら、表示されないのかと思いきやnullが返ってくるので、表示させたくないなら別途whereで弾くしかない。

0.221

redash-query-download 0.0.4

Redashのクエリのデータをダウンロードするやつを自作した。本家のrqdとの違いは、ファイル名を変更できること。 0.0.4でクエリを実行しないでダウンロードするだけのオプションを追加した。

りどみ追加し忘れた。

rqd --help
Usage: rqd [OPTIONS]

Options:
  -q, --query_id INTEGER          [required]
  -p, --parameters <TEXT TEXT>...
  -o, --output TEXT               [required]
  -c, --config TEXT
  -d, --download_only
  --help                          Show this message and exit.

redash-query-download · PyPI