タグ

pythonとbatchに関するishideoのブックマーク (4)

  • pythonでバッチスクリプトを書くときの雛形 - Qiita

    仕事Pythonでスクリプトをよく書くので、雛形コードを備忘録も兼ねて載せておきます。 python3系の雛形 python 3.3以降を対象としています。 概要 この雛形では以下のことをしています。 コマンドライン引数のパース(clickの利用) 設定クラスの読み込み ログ出力(loggingの利用) ライブラリ読み込み ライブラリの単体テスト ファイルの配置 import logging import os import sys from pathlib import Path import click # 親ディレクトリをアプリケーションのホーム(${app_home})に設定 app_home = str(Path(__file__).parents[1]) # ${app_home}をライブラリロードパスに追加 sys.path.append(app_home) # 自前のライ

    pythonでバッチスクリプトを書くときの雛形 - Qiita
  • 長い時間かかるバッチを並行実行し何倍も早くする - Qiita

    何倍も早くなるかどうかは処理している内容によりますが、並行に実行することにより長い時間かかっていたバッチがはやくなることがあります。 並行に実行できそうな例 ゲームの設定などが入っているマスターデータを順番にBigQueryにインポートしているが遅い MySQLのテーブルをRedshiftに順番にコピーしているが遅い 複数のSQLMySQLに投げ、すべて取得し終わってから処理をしている まだまだたくさんありますが、ひとまずこれくらいに。 上記を実現できそうなモジュールとして、geventがあったので、試してみました。 (ちなみにgeventは1プロセスのイベントループで並行に処理するものなので、CPUバウンドな並列化の場合は、他にも組み合わせる必要があります) geventを使わず直列で実行した場合 通常、何もやらずに処理を書くと以下のように書くことになります。 import time

    長い時間かかるバッチを並行実行し何倍も早くする - Qiita
  • LuigiでバッチJobワークフローを実行してみた | DevelopersIO

    こんにちは、三上です。 気付けば2017年も1ヶ月が過ぎ去り。。(日付とか、気を抜いてるとまだ "2016" などと書いてる自分が。。。 はじめに Python勉強中です。 Pythonのスクリプト言語的な手軽さが楽しいです!v 今回、Pythonで書いたバッチのJobワークフローエンジンを検討するにあたり、Luigiをさわってみました。 Luigiって何? PythonでバッチJobのワークフロー管理してくれるヒト(全部 Pythonコード スケジューラー機能はない(ので、cronからluigiを実行する Jobに依存関係を持たせたい場合、if文ばしばしなコード書かなくて良いのでコードの可読性が上がる Luigi Advent Calendar 2016 | シリーズ | Developers.IO OSSのワークフローエンジンを使ってみた感想 | Qiita データフロー制御フレームワ

    LuigiでバッチJobワークフローを実行してみた | DevelopersIO
  • Python: データパイプライン構築用フレームワーク Luigi を使ってみる - CUBE SUGAR CONTAINER

    最近になって、バッチ処理においてデータパイプラインを組むためのフレームワークとして Luigi というものがあることを知った。 これは、Spotify という音楽のストリーミングサービスを提供する会社が作ったものらしい。 似たような OSS としては他にも Apache Airflow がある。 こちらは民宿サービスを提供する Airbnb が作ったものだけど、最近 Apache に寄贈されてインキュベータープロジェクトとなった。 Luigi の特徴としては、バッチ処理に特化している点が挙げられる。 ただし、定期的にバッチ処理を実行するような機能はない。 そこは、代わりに cronsystemd timer を使ってやる必要がある。 また、体もそうだけどデータパイプラインについても Python を使って書く必要がある。 今回は、そんな Luigi を一通り触ってみることにする。

    Python: データパイプライン構築用フレームワーク Luigi を使ってみる - CUBE SUGAR CONTAINER
  • 1