概要 postgresのcopyとupdateを使って、フィールドが同じテーブル間でレコードを移動する方法です。 postgres9.5からはON CONFLICTを使ってupsertが簡単にできるようになりましたが、 それ以前のバージョンでは、copyやupdateなどを使って、insertとupdateに分けてレコードの移動をする必要があります。 手順 psqlでインポート元のDBにログイン
![postgresでcopyとupdateを使ってレコード移動をする方法 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/aae38d0d67587e81a6146ad2ffd7ff5cb031bfae/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9cG9zdGdyZXMlRTMlODElQTdjb3B5JUUzJTgxJUE4dXBkYXRlJUUzJTgyJTkyJUU0JUJEJUJGJUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgzJUFDJUUzJTgyJUIzJUUzJTgzJUJDJUUzJTgzJTg5JUU3JUE3JUJCJUU1JThCJTk1JUUzJTgyJTkyJUUzJTgxJTk5JUUzJTgyJThCJUU2JTk2JUI5JUU2JUIzJTk1JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1kZDMxNGQxZjUxMGQ0ZGE1MzJlMDhhMDNhZGE5ZmIzNA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBuYXJlZmYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTg4YjkwYjQyN2JiYWIxODc4YzI0MGFkNTU2ZWYzOTJm%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dac69fb799e8bcff2bb1ce43411355334)
複数のGCPプロジェクトで並行作業していると、うっかり別のプロジェクトに gcloud app deploy などしてしまうことがありませんか?私はあります。 事故そのものも悲しいんですが、事故のたびにアカウントとプロジェクトを切り替える方法を毎回ググっていて悲しいので自分用にまとめてみます。 状態確認 gcloudコマンドにはデフォルトのアカウントやプロジェクトが設定できます。何か作業する前に現在のデフォルト値を確認しましょう。 $ gcloud config list (略) [core] account = ***@***.jp disable_usage_reporting = True project = **** accountとprojectが期待通りの値か確認して、期待と違ったら設定し直す必要があります。 ちなみにデフォルト設定の実体は$HOME/.config/gclou
GCP を使う上である種必須とも言える Google Cloud SDK は、Python 3がデフォルトの環境だと動かない問題がある。 Python 2の死までもう4ヶ月を切っているけどリプレースする気はあるのだろうか (pyenvの導入方法などは割愛) pyenvを使っている環境で pyenv global 3.x.x とした際には $CLOUD_SDK_PYTHON という環境変数に Python 2 へのパスをセットするのが一般的なのだと思っていた。 しかし、 pyenv global 3.x.x 2.x.x とバージョンを2つ記載するとPython 2/3の環境を共存させることができる。 この場合の各バージョンは以下のようになる。 $ python --version Python 3.x.x $ python2 --version Python 2.x.x $ python3
embulk mkbundle および embulk run -b を使うと、embulk のプラグインを Gemfile/Gemfile.lock でバージョン管理できるようになる。その使い方。 [更新履歴] 2019/02/09 embulk >= 0.9.0 で gem 'embulk' が必要になったので注記 2015/11/06 mkbundle コマンドが生えたので記事を修正。v0.7.8 以降で有効 https://github.com/embulk/embulk/pull/334 https://github.com/embulk/embulk/pull/335 基本の使い方 1. embulk mkbundle すると、Gemfile やプラグインの雛形(gem にせずに読み込みたいプラグイン)が作られる $ embulk mkbundle bundle_dir Crea
概要 BigQueryで大量のデータを扱う場合、日付別テーブルもしくはパーティショニングされたテーブルを利用すると便利です。 これらのテーブルの種類についてはドキュメントにもありますが、いくつかのページにまたがっていたりして見つけるのに苦労しているので、ここにまとめておきます。 3つの選択肢 「日付別テーブル」、「取り込み時間で分割されたテーブル」、「分割テーブル」の3つの選択肢があります。 後ろの2つがパーティショニングされたテーブルです。テーブルとしては1つですが内部的に分割(パーティションニング)されていて、実行するクエリで読み込むパーティションを指定することでスキャン対象のデータサイズを減らすことができ、パフォーマンスとコストを向上させることができます。 「日付別テーブル」は、その名の通り日付ごとに作成した複数のテーブルです。命名規則に従ったテーブル名をつけることで、Webコンソー
書籍-入門 機械学習による異常検知―Rによる実践ガイド-の7章 「状態空間モデルによる異常検知」で、カルマンフィルタによる異常検知を 実行すると、結果がどうなるのか気になっていました。 そこで、Pythonのnumpyとscipyを使ってゴリゴリ実装してみました。 理論と実装 本稿では、結果の式だけを載せておきます。 式の意味や導出は、書籍をご覧ください。 書籍自体は大変分かりやすく、異常検知を始める人におススメです。 ただ、後半(7章は最後の方)は少し数式が多くなり、難しくなってきます。 データロード 書籍でも使われている心拍数のデータを使います。 import urllib.request import numpy as np from numpy.linalg import svd, inv, matrix_rank import matplotlib.pyplot as plt f
概要 Embulkで処理を作成する際、DB接続情報などの環境によって変更したい設定をどう定義すればいいか調べた内容をメモしておきます。 Embulkのテンプレート機能を利用する Embulkに搭載されているテンプレートエンジンLiquidの機能を使って共通化してみます。 ※ Embulk 0.7.7以上 ファイル構成 │ # 設定情報 ├ _env.yml.liquid │ | # bundle plugin. ├ bundle │ ├ .bundle │ ├ .ruby-version │ ├ Gemfile │ ├ Gemfile.lock │ ├ embulk │ └ jruby │ │ # 処理内容 └ users.yml.liquid
対象の読者 Docker for Macを使っている方 Mac上でWebアプリケーションなどを開発しているなどで、DockerコンテナからMac上のアプリケーションに対し通信したい方 2020/1/18 追記 :-> より優れた方法があります Docker for Mac 17.06以降では、コンテナ内でDockerホストの名前解決ができるようになっているため、本記事で紹介する対処は不要です。 コンテナ内で下記を通信先に指定すれば、DockerホストのLoopBackインターフェイス経由で、Dockerホストと通信が行われます。 docker.for.mac.localhost Docker for Mac 17.12では、上記が非推奨となり、以下が推奨されています。 docker.for.mac.host.internal さらに、Docker for Mac 18.03以降は、上記が非
紹介論文 Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches (RecSys 2019) 日本語では「本当にそんなに進捗出てるの? -或いは最近のNN推薦手法に対する警鐘-」という感じだろうか。 元論文はこちら https://arxiv.org/pdf/1907.06902.pdf 概要 DNNが登場してから推薦分野でもDeepXXな手法が増えている 新手法の登場頻度が高いため、代表的なタスクであるtopN推薦に対してすらSOTAが何か追えなくなっている そこでトップ会議(KDD, SIGIR, WWW, RecSys)のDNN関連研究18本を追試した 18本のうち、現実的な努力を行った上で再現できたのが7本 (RecSysでの発表によると、)
これはマスターしたい。Splunkでカーネル密度推定を使った異常検知(Density Function)機械学習MachineLearningSplunk異常検知カーネル密度推定 追記 (2019/10/25) MLTK5 がリリースされたことにより、こちらの実装がGUIベースで可能になりました。 詳細はこちらをチェックしてください。 Splunk MLTK Smart Outlier Detection Assistant について 目的 Splunk MLTK 4.2 から、新しいアルゴリズムとして Density Function が追加されました。機械学習を使って確率密度ベースによる異常検知ができるというもので、教師なし学習でモデルが作れます。しかも確率密度推定に使われる確率分布として、正規分布・指数分布以外にもカーネル密度推定(Gaussian)が利用できるということで、今までよ
要素を横並びにする方法は多種多様ありますが、その中でも個人的によく使うものと、その使い分けをまとめました。※display:flexについては説明する事項が多いため、今回は割愛します。flexでええやんというツッコミはお控えいただけると幸いです。 display:inlineとdisplay:inline-block 以下のように、アイコンにテキストを周りこませるような際などに使用しています。 アイコンを形成する要素にfloat:leftを指定しても似たようなレイアウトにはできますが、テキストの縦中央揃えがややめんどうです。 display:inline-blockはブロック要素として形成されるため、widthやheight、marginなどの指定もできます。加えて、インライン要素のような振る舞いをするので、後続に続くインライン要素は後ろに続くように回り込みます。 今回は、アイコンとテキス
この記事について Kubernetesの良さをたくさんの人に知って貰いたいと思い、 The Illustrated Children’s Guide to Kubernetes https://www.cncf.io/phippy/ を日本語に翻訳してみました。 Kubernetesの主要サービスを絵本の物語を通して理解できる構成になっています。 Kubernetesでできることがザックリと分かって頂けると嬉しいです かなり意訳している部分もあり、不適切な表現あった場合ご指摘頂けると助かります。 まず初めに ある日、オフィスで娘とこんなやりとりがありました。 娘「Kubernetesってなにー?」 父「Kubernetesは、Dockerコンテナ群をオーケストレーションするためのオープンソースのシステムだよ。クラスタリングされたコンピューター内のノード群のスケジューリング、ワークロードの動
とすると、go.modなどに書かれた依存パッケージが $GOPATH/pkg/mod/ へキャッシュされます。このディレクトリをCircle CIの save_cache に指定すれば良さそうです。 例: version: 2 defaults: &defaults jobs: setup-build: docker: - image: golang:stretch working_directory: /workspace environment: GOPATH: / GOCACHE: /.cache/go-build GO111MODULE: "on" steps: - run: go env - checkout - restore_cache: keys: - go-module-cache-v1-{{ checksum "/workspace/go.sum" }} - go-mo
背景 macOSでディスプレイ1枚で作業する技術 こちらの記事を参考に、アプリケーションごとにデスクトップを割り当てて、キーボードショートカットでさくさく切り替える環境をつくろうとしてたんですが、「TopSpaces2でトランジションのアニメーションをオフにする」ってのを、できればOSの設定で対応できないかなーと探していたところ、こちらの設定でそこそこ満足いったので共有します。 概要 デスクトップ切り替え時やMission Controlなどの画面切り替え時のモーション効果を減らす(スライドからディゾルブに変更)することで、切り替え時の体感を多少良くします。 環境 ※ 参考記事を読む限り、以前のバージョンでも設定できそうです。 設定 「システム環境設定」→「アクセシビリティ」 「ディスプレイ」を選択 「視差効果を減らす」にチェック これだけ! 結果 ※ 個別のデスクトップに配置してあるアプ
概要 Dockerfileを書くためのベストプラクティスを読んで、ベストプラクティスなDockerfileを作った/作りたい人が対象です。 そのDockerfileで大丈夫かを3分でチェックできるツールをつくりました。Hadolintのような、単なるDockerfileのLinterではなく、ビルドしたイメージの中身まで細かく分析します。 通常のLinterでは原理的に不可能な、ベースイメージに存在している危険性も含めて調べることができます。 ←GitHubのStarもらえると嬉しいです。 Dockleの内部で使われているツールはTrivy, Vulsなどと同じなので、そのあたりを踏まえて、動作原理を別記事にまとめました。 人を震えさせるツール「Dockle」の仕組みを解説 なお、DockerHubで人気のコンテナに対して試した結果をサイトにして公開しています。操作方法もふくめて、別記事に
概要 データパイプラインの管理にワークフローエンジンを導入したいのですが、今の要件に対してどれが合っているのか判断しきれない部分があるので整理してみました 最近の導入事例や発表をみるかぎりAirflow, Argo, Digdagあたりが人気なのかなと思います ワークフローエンジンとは ワークフローエンジンとは定期的なバッチ処理をうまく処理できるように、バッチ実行を管理してくれるソフトウェアのことです 古典的な実現方法としては適当なlinuxサーバーの上でcron実行させることが考えられますが、以下のような問題があります ジョブごとの依存関係を表現できない。cronの時間指定で実現させようとすると、タスクAを1時に開始してそれが完了するとみなして依存するタスクBを2時に開始するというような書き方をすることになるが、実際にタスクAが2時までに終わらなかった場合に処理が上手く実行できない タス
前書き vs codeでそこそこな規模の開発をしているとフォルダの階層が深くなっていくわけですが、vs codeのファイルツリーは階層毎のインデントが浅く、見づらいなーと常々思っていました。 いい加減なんとかしないといけないと思い拡張機能で解決できないか考えていたところ、今年の1月(v1.31)にツリーのインデントを調整する機能がすでに実装されていました。 設定方法 Preferences > Settings > 検索項目に「Tree Indent」と入力 Workbench > Tree: Indent 項目に任意の数値を入力する(default: 8, range: 0~40) 知らなかった方はお試しあれ。 参考 User configurable indent in file explorer - github
これまでに、「データサイエンスに関してビジネスからよく聞かれる質問」というシリーズで以下の2つの記事の訳と解説を書いてきました。 あなたのビジネスのデータサイエンス本気度を試す4つの質問 - Link データサイエンスをいつ始めればよいか - Link 今回はこのシリーズの最後として、「データサイエンス・チームを組織の中でどう作っていけばよいのか」という質問に対する答えとして、いくつものシリコンバレーのデータ先進企業でデータサイエンスのチームを作り、率いてきた、このシリーズではおなじみのJeremy (Instacart, Sailthru, Collective) とDaniel (LinkedIn, Ebay, Apple) によるアドバイスを要訳という形で紹介します。 以下、要訳。 データサイエンスのチームはどこに作られるべきか 組織の中にデータサイエンスのチームを作る場合には大きく
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く