by shigemk2

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

apache universal donor

universal donor もとは血液型的な話で誰にでも提供できるO型のはなしだけど、ソースコードもそんな感じで誰にでも提供できるようにしないといけないという話。

今回FacebookBSD+Patentライセンスのくだりで引っかかったのはそこ。条件に引っかかった人間はソフトウェアを使えないようになっているのが、「誰にでもソースコードを提供できる」部分に違反している。

presto map_filter

KとVはArrayっぽい

Constructs a map from those entries of map for which function returns true:

SELECT map_filter(MAP(ARRAY[], ARRAY[]), (k, v) -> true); -- {}
SELECT map_filter(MAP(ARRAY[10, 20, 30], ARRAY['a', NULL, 'c']), (k, v) -> v IS NOT NULL); -- {10 -> a, 30 -> c}
SELECT map_filter(MAP(ARRAY['k1', 'k2', 'k3'], ARRAY[20, 3, 15]), (k, v) -> v > 10); -- {k1 -> 20, k3 -> 15}

6.19. Lambda Expressions and Functions — Presto 0.183 Documentation

digdag retry

retryはこういうふうに書くのね。なお、loopとretryは違う。

+prepare:
  # If +erase_table, +load_data, or +check_loaded_data fail, it retries from
  # +erase_table again.
  _retry: 3

  +erase_table:
    sh>: tasks/erase_table.sh

  +load_data:
    sh>: tasks/load_data.sh

  +check_loaded_data:
    sh>: tasks/check_loaded_data.sh

+analyze:
    sh>: tasks/analyze_prepared_data_sets.sh

https://docs.digdag.io/workflow_definition.html:embeed