PyCharmでRoot以外にもPythonPathを追加したい時
PyCharm: 2017.1バージョン
Preference > Project:
postgresqlでcsvファイルから一括upsert
全部1行ずつupsertしてたら100万件で数時間かかったので、 他の解決策を考える。
1時テーブルを作成しupdate + insert
PostgreSQL CSV 取り込み upsert | odekakeshimasyo.me
- copy from => tmp table
- tmp tableからUpdate
- tmp tableからUpdateした分を削除してInsert
PostgreSQLメモ
Activeで何クエリが走ってるか
select pid, query from pg_stat_activity where state = 'active';
クエリジョブのkill
select pg_cancel_backend(pid);
Pythonのdocstringの書き方について
3つの書き方
google style:
numpy style:
reST:
自分の基本的な書き方
基本的にはreSTの書き方しているつもり。
''' 1行関数・クラス説明 複数行説明... :param type param-name: param-description :return: return-description :rtype: return-type '''
docstringのtypeの書き方
docker-composeよく使うコマンド
コマンド
コマンド | 意味 |
---|---|
docker-compose build | docker-compose.ymlの中身を変更したら実行する |
docker-compose up | 起動 |
docker-compose run {サービス名} {command} | コマンドを実行する |
docker-compose rm {サービス名} | containerの削除。buildした内容を破棄する |
PostgreSQLの設定
user:username, pass:secret, dbname:username でDBを作る。
db: restart: always image: postgres:alpine ports: - 5432:5432 environment: POSTGRES_USER: username POSTGRES_PASSWORD: secret volumes: - ./path/to/schema.sql:/docker-entrypoint-initdb.d/01_schema.sql
volumes: を指定すると この例なら自作schema.sqlを初回起動時に実行する。 テストデータ作ったり、スキーマ作ったりするのに便利。要らなかったらvolumes:ごと書かない
NLP系調べごとのメモ
- [筑波ウェブコーパス|教育サービス|日本語・日本事情遠隔教育拠点](http://www.intersc.tsukuba.ac.jp/~kyoten/twc.html#.WcSXEdNJYdV)
digdag使い方メモ
REST API のエンドポイント
ドキュメントに情報がないので頑張ってコードから探した division: 5d235dc9d281d2d50f6a2193ad2a312ec51d18ca
Path | |
---|---|
GET | /api/admin/attempts/{id}/userinfo |
GET | /api/attempts |
GET | /api/attempts/{id} |
GET | /api/attempts/{id}/retries |
GET | /api/attempts/{id}/tasks |
PUT | /api/attempts |
POST | /api/attempts/{id}/kill |
PUT | /api/logs/{attempt_id}/files |
GET | /api/logs/{attempt_id}/upload_handle |
GET | /api/logs/{attempt_id}/files |
GET | /api/logs/{attempt_id}/files/{file_name} |
GET | /api/project |
GET | /api/projects |
GET | /api/projects/{id} |
GET | /api/projects/{id}/revisions |
GET | /api/projects/{id}/workflow |
GET | /api/projects/{id}/workflows/{name} |
GET | /api/projects/{id}/workflows |
GET | /api/projects/{id}/schedules |
GET | /api/projects/{id}/sessions |
GET | /api/projects/{id}/archive |
DELETE | /api/projects/{id} |
PUT | /api/projects |
PUT | /api/projects/{id}/secrets/{key} |
DELETE | /api/projects/{id}/secrets/{key} |
GET | /api/projects/{id}/secrets |
GET | /api/schedules |
GET | /api/schedules/{id} |
POST | /api/schedules/{id}/skip |
POST | /api/schedules/{id}/backfill |
POST | /api/schedules/{id}/disable |
POST | /api/schedules/{id}/enable |
GET | /api/sessions |
GET | /api/sessions/{id} |
GET | /api/sessions/{id}/attempts |
GET | /api/version |
GET | /api/version/check |
GET | /api/workflow |
GET | /api/workflows |
GET | /api/workflows/{id} |
GET | /api/workflows/{id}/truncated_session_time |
digdag push
digdag push すきなプロジェクト名 --project digdag該当ディレクトリ
Secretキーへpy>
やsh>
からアクセスする
*.digdag
+python-task: _env: pg_pw: ${secret:pg.password} py>: tasks.main
main.py
import digdag import os #digdag変数へのアクセス digdag.env.params['session_id'] #secretにenv経由でアクセス pw = os.environ.get('pg_pw')