Skip to content

Instantly share code, notes, and snippets.

@terashim
terashim / snippet.py
Created July 1, 2020 05:34
テーブルの存在判定 - Python ライブラリ google-cloud-bigquery の練習
# テーブルの存在判定 - Python ライブラリ google-cloud-bigquery の練習
#
# 参考
# https://googleapis.dev/python/bigquery/latest/index.html
# https://stackoverflow.com/a/48116346
# 準備:
# GCPプロジェクトとBigQueryのデータセット・テーブルは用意しておく
# 環境変数 GOOGLE_APPLICATION_CREDENTIALS に サービスアカウント鍵ファイルへのパスを入れておく.
# 例: export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
@terashim
terashim / snippet.py
Created July 1, 2020 05:34
テーブルの存在判定 - Python ライブラリ google-cloud-bigquery の練習
# テーブルの存在判定 - Python ライブラリ google-cloud-bigquery の練習
#
# 参考
# https://googleapis.dev/python/bigquery/latest/index.html
# https://stackoverflow.com/a/48116346
# 準備:
# GCPプロジェクトとBigQueryのデータセット・テーブルは用意しておく
# 環境変数 GOOGLE_APPLICATION_CREDENTIALS に サービスアカウント鍵ファイルへのパスを入れておく.
# 例: export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
@terashim
terashim / docker-compose.yml
Created June 27, 2020 05:51
ローカル Jupyter 環境の Docker Compose 設定例
version: "3.8"
services:
jupyter:
image: jupyter/minimal-notebook:latest
ports:
- "10000:8888"
volumes:
- ./work:/home/jovyan/work
command:
- start.sh
@terashim
terashim / README.md
Created May 14, 2020 05:52
DBeaverでSSHトンネル接続する場合はPEM形式の秘密鍵が必要

DBeaverでSSHトンネル経由の接続をする場合、SSH秘密鍵はOpenSSH形式ではなくPEM形式にする必要がある。

例えば既にOpenSSH形式の秘密鍵 ~/.ssh/id_rsa があるとき、それをPEM形式に変換したファイルを ~/.ssh/id_rsa.pem に作成するには

cp ~/.ssh/id_rsa ~/.ssh/id_rsa.pem
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa.pem

とする。

@terashim
terashim / bigquery-extract-data-at-every-end-of-month.sql
Created March 2, 2020 06:50
BigQuery クエリの例 - 日付でパーティショニングされたテーブルから毎月月末のデータのみ抽出する
--
-- BigQuery クエリの例 - 日付でパーティショニングされたテーブルから毎月月末のデータのみ抽出する
--
-- パーティショニングされたテーブルに対してクエリを実行するとき,
-- パーティショニングフィールドの値で絞り込むとデータ処理量を削減できる.
-- しかし, サブクエリを使って絞り込み条件を与えるとクエリのサイズ削減が効かない.
--
-- 処理サイズを抑えながら毎月月末のデータだけを抽出するクエリの例を示す.
--
-- ### データの準備
@terashim
terashim / README.md
Last active March 2, 2020 10:32
BigQuery パーティショニングによるクエリサイズの削減実験

BigQuery パーティショニングによるクエリサイズの削減実験

パーティショニングされたテーブルに対してクエリを実行するとき, パーティショニングフィールドの値で絞り込むとデータ処理量を削減できる. しかし, サブクエリや他のテーブルを使って絞り込み条件を与えるとクエリサイズ削減が効かない.

ドキュメント パーティション分割テーブルのクエリ | BigQuery | Google Cloud より引用

述部フィルタはテーブルの識別子に可能な限り近いところに記述してください。述部(内部クエリやサブクエリなど)を解決するために複数の段階でクエリの評価を行う必要がある複雑なクエリでは、クエリからパーティションがプルーニングされません。

@terashim
terashim / load-mathjax-v2.7.6.html
Created February 3, 2020 15:47
Load MathJax v2.7.6
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-MML-AM_CHTML"></script>
@terashim
terashim / install-python3.8-venv-macos.sh
Created January 7, 2020 04:19
Mac OS に Python 3.8 をインストールして venv 環境を作成する例
# Mac OS に Python 3.8 をインストールして venv 環境を作成する例
# Homebrew で Python 3.8 を取得
brew install [email protected]
# $HOME/.venv/3.8 にPython 3.8 用の venv フォルダを作成
# (プロジェクトごとにvenv環境を分離したい場合は, 別フォルダを作成する)
/usr/local/opt/[email protected]/bin/python3 -m venv $HOME/.venv/3.8
# 用法
#
@terashim
terashim / y_m_d.R
Created December 26, 2019 10:39
y_m_d() 年、月、日の整数値ベクトルから日付ベクトルを作成するR関数
#' 年、月、日の整数値ベクトルから日付ベクトルを作成する
#'
#' @param y 年
#' @param m 月
#' @param d 日
#' @return 日付ベクトル
#' @examples
#' y_m_d(2019, 10, 2:4) # => [1] "2019-10-02" "2019-10-03" "2019-10-04"
#' y_m_d(c(2019, 2020), c(1, 2), c(10, 20)) # => [1] "2019-01-10" "2020-02-20"
y_m_d <- function(y, m, d) {
@terashim
terashim / portainer.fish
Last active February 24, 2020 15:58
Docker Desktop for Mac & fish shell環境でPortainerを起動する関数
# Portainer Local CLI
#
# Docker Desktop for Mac & fish shellのローカル環境でPortainerを起動する関数
#
function portainer
echo "Dockerの状態を確認します"
echo "> docker system info"
docker system info
if [ $status -ne 0 ]
echo "エラー: Dockerが起動していません. 終了します."