タグ

batchに関するmanabouのブックマーク (24)

  • バッチ処理 プラクティス

    バッチ処理は既に先人の方々が多くのナレッジを公開してくれていますが、それでもなお難しさが変わらないテーマだと思っています。 この記事は、筆者がこれまでの開発経験で気づいたバッチ処理の実装ナレッジを整理し、体系化を目指して文章にしました。 ここでの内容が、より良い課題解決に貢献できれば幸いです。 自身の断片的な思考整理(メモ書き)の延長で内容を整理したため、一部書き振りが統一されておらず、読みにくいかもしれません。ご了承ください。🙏 バッチ処理の難しさバッチ処理は難しい。 人によっては簡単なテーマかもしれませんが、自分は難しいテーマだと思っています。 「難しさの根源は何か?」を考えると、1. 考慮点が多様にあること 2. 解決する課題によって答えが大きく変わること に整理できました。 この2点は、どのソフトウェア開発にも当てはまる項目ではありますが、ことバッチ処理においては顕著に現れます。

    バッチ処理 プラクティス
  • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

    こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

    データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
  • MLOpsに必要な情報全部BigQueryに置いたら想像以上に捗った話 - Qiita

    記事はMLOps Advent Calendar 2020の13日目の記事です。 こんにちは。昨年番環境のComposerでやらかしちゃった人です。今年は比較的平穏に機械学習を使用したサービス開発・運用に携われています。 携わっているサービスの1つで「MLOpsに必要な情報BigQueryに全部おいてみた」ところ想像以上に便利だったので、その方法について共有させてい頂ければと思います。 なお記事でのMLOpsは 予測モデル/ハイパーパラメータのバージョン管理・デプロイ履歴管理 推論結果の精度監視 + 入力データの傾向監視 を指しています。 特に今年はコロナでビジネス環境が日々絶えず変化しているため、これらの施策がサービス品質担保に大きく貢献してくれました。 背景 毎日一回24時間先までバッチで未来予測し、結果をAPIサーバーにキャッシュする単純なMLサービスに携わっています。なお、予

    MLOpsに必要な情報全部BigQueryに置いたら想像以上に捗った話 - Qiita
  • バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング

    こんにちは。メルペイでバックエンドソフトウェアエンジニアをしている id:koemu です。 バッチプログラムのお話、今回は運用・監視についてお話したいと思います。当社はすべての業務が24時間行われていますので、システムがオンラインのときに動作するバッチプログラムについてのみ議論します。 過去の記事はこちらにあります。 運用に備えて バッチプログラムの運用について、「プリモーテム」「実行管理」そして「ログ管理」の3点について述べていきます。 プリモーテム ポストモーテムという言葉を聞いたことがある方はいらっしゃるかと思います。ポストモーテムとは、GoogleのSREの15章*1によれば、障害などの失敗を振り返り、今後に活かすプロセスの総称と捉えることができます。 さて、プリモーテム(プリモータム)とは何でしょうか。この言葉は、私が最近読んだThe Manager’s Path*2*3で使

    バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング
  • バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング

    こんにちは。メルペイで、決済・振込申請のバックエンドソフトウェアエンジニアをしている id:koemu です。 今日は、バッチ処理を行う理由について、考察を深めて設計に活かしていく話をしたいと思います。 はじめに バッチ処理とは、ある決まったタイミングで1つのプログラムが複数のデータを 一括処理 することを指します。この反対の言葉として、オンライン処理があります。オンライン処理とは、お客様の操作を初めとしたイベントをもとに 逐次処理 されるものです。OLTP(Online Transaction Processing)とも言います。 エントリでは、バッチ処理を採用するにあたり、どういったユースケースが適切なのかを整理して、今後のソフトウェアの設計の指針にできることを目指しています。今回は、「バッチ処理を採用するとき」と「バッチ処理の設計」の2つについて取り上げます。 バッチ処理を採用する

    バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング
  • クラウドでの Azure Batch による大規模な並列ジョブの実行 - Azure Batch

    Azure Batch を使用すると、大規模な並列コンピューティングやハイパフォーマンス コンピューティング (HPC) のバッチ ジョブを Azure で効率的に実行することができます。 Azure Batch は、コンピューティング ノード (仮想マシン) のプールを作成および管理し、実行するアプリケーションをインストールし、ノードで実行するジョブをスケジュールします。 インストール、管理、またはスケーリングするクラスターまたはジョブ スケジューラ ソフトウェアはありません。 代わりに、Batch API およびツール、コマンド ライン スクリプト、または Azure Portal を使用して、ジョブを構成、管理、および監視します。 開発者は Batch をプラットフォーム サービスとして使用して、大規模な実行が必要な SaaS アプリケーションやクライアント アプリケーションを構築す

    クラウドでの Azure Batch による大規模な並列ジョブの実行 - Azure Batch
  • データ分析部が開発・運用するバッチ アプリケーション事情 - Gunosyデータ分析ブログ

    はじめに こんにちは、データ分析部の森です。 この記事ではGunosyデータ分析部がどのような視点に基づいてバッチアプリケーション(以下、バッチ)を開発・運用しているかしているのかを紹介します。 クライアントアプリ開発やAPI開発と比較してバッチ開発のノウハウなどをまとめたWeb記事の数は少なく感じます。 また、言語に関わらずWebフレームワークの数に対して、バッチフレームワークの数も少数です。 このような点を踏まえると一般的には難易度の高くない(ノウハウを必要としない、フレームワークに頼る必要のない)、もしくはニーズがあまりないなどの印象があるのかもしれません。 一方で我々は日々バッチ開発を行い、数多くの地雷を踏んできました。 これらの経験を踏まえてどのような点に気をつけているのかについて共有します。 理想的には多くの方の経験を共有して、建設的な議論に発展するとうれしいです。 はじめに

    データ分析部が開発・運用するバッチ アプリケーション事情 - Gunosyデータ分析ブログ
  • JenkinsおじさんのためのAWS Batch - Qiita

    はじめに この記事の対象者 主にこんな感じの人をターゲットにしています。 Jenkinsでジョブを管理している AWSをcliで触るのは実は大変…。GUIでやりたい Dockerはインストールはしているけれど、あんまり触ったことが無い また、記事執筆時点では、us-east(virginia)でのみ利用可能なので、VPCでの利用はあまり想定していません。 (VPNを繋げば出来ると思いますが…) 来はAuto ScalingやSPOTインスタンスと組み合わせたりといろいろあるのですが、私的事情により、志は低く、過疎っているJenkinsサーバを廃止(サーバレス化)することを目標にしています。 対象のJenkinsジョブ 今回ターゲットにするのは、Jenkinsだと一般的と思われる以下の処理とします。 JDKがバージョン指定で入っている バッチ処理の入ったリポジトリをgit cloneして

    JenkinsおじさんのためのAWS Batch - Qiita
  • Zabbixでバッチジョブの所要時間と実行結果を監視する - Qiita

    先日、cronで回しているとあるバッチジョブがたまに妙に時間がかかっているようだったので、その所要時間をZabbixで監視してみました。 time(1) コマンドの所要時間を計測するにはtime(1)コマンドが便利です。bash組み込みのtimeも便利ですが、time(1)はさらにいろんなオプションが使えます。 -oオプションは計測結果を指定ファイルに出力します。 -fオプションは結果の出力フォーマットを指定します。%eはいわゆるreal時間(単位は秒)、%xはCOMMANDのexit statusです。他にもいろいろな計測ができます。 デフォルトではCOMMANDのexit statusが非ゼロの場合にエラーメッセージを出力します。それを抑制するには--quietを指定します。 time(1)コマンドを使ってファイルに所要時間を出力しておけば、あとは適当な方法でそれをZabbixへアップ

    Zabbixでバッチジョブの所要時間と実行結果を監視する - Qiita
  • AWS Step Functions で作る Serverless バッチシステム - Qiita

    re:Invent 2016 で Step Functions というサービスがローンチされました! 幾つかのステップに分かれる処理を Lambda で構築するときに、処理のステート管理や処理間のコーディネートを行ってくれるサービスです。 これまでは、このような処理を組もうとすると「来行いたい処理に関するコード」以外に「状態を管理するコード」を書く必要がありましたが、 Step Functions を用いることで、疎結合なメンテのしやすい Serverless バッチシステムを構築できるようになります。 個人的には今年の re:Invent で一番熱いリリースです!早速触ってみました! (※2017/12 により具体的なサービスに使った記事を書いてみましたので、よろしければこちらもご覧ください。) AWS Lambda と Step Functions で作るサーバレスなアービトラージ検

    AWS Step Functions で作る Serverless バッチシステム - Qiita
  • Azure でのハイ パフォーマンス コンピューティング (HPC) - Azure Architecture Center

    ビッグ コンピューティングとも呼ばれるハイ パフォーマンス コンピューティング (HPC) は、多数の CPU または GPU ベースのコンピューターを使用して、複雑な数学的タスクを解決します。 多くの業界では HPC を使用して、最も困難な問題の一部を解決しています。 これらには、以下のようなワークロードがあります。 Genomics 石油およびガスのシミュレーション Finance 半導体の設計 Engineering 天気のモデリング クラウドでの HPC の違い オンプレミスの HPC システムとクラウドのそれとの主な違いの 1 つは、必要に応じてリソースを動的に追加および削除できることです。 動的スケーリングによって、コンピューター能力がボトルネットになることがなく、お客様はジョブの要件に応じてインフラストラクチャを適切にサイズ調整できます。 次の記事では、この動的スケーリング機

    Azure でのハイ パフォーマンス コンピューティング (HPC) - Azure Architecture Center
  • Shoryukenでつくるバッチ処理基盤 - トレタ開発者ブログ

    トレタのAPI開発を担当している芹沢です。 トレタでは、長時間かかるバッチ処理を複数台のサーバ上で処理させて短時間で処理できるバッチ処理基盤をAWS上で構築しました。この仕組みについて説明します。 目的 短期的には以下の課題を解決するため、長期的には似たような要件が再度発生した時に、同じ手法で解決できることを目的に作りました。 非同期でDBをデータソースとしたデータを加工してCSVファイルとして出力してS3にputしたい データソースはDBに入っているリアルタイムのデータであることが求められる CSVファイルの作成は決められた時間内に完了する必要がある 対象となるデータソースの量は日々増加し続けるが、常に決められた時間内にCSV作成が完了している必要がある 難点 今回の要件で技術的に難しい点は以下の2点です。 DBを直接参照しながら大量のデータを処理する 例えば、データソースとしてDBから

    Shoryukenでつくるバッチ処理基盤 - トレタ開発者ブログ
  • 爽快!分析基盤の紹介 #6 : batch の cron を azkaban に移行した話 - sekaie engineers' blog

    はじめに おはようございますこんにちはこんばんわ。 健康診断で身長が 1cm 伸びてました。佐々木です(体重は 10kg 増えてました) 今日は cron を azkaban に移行した話をしようかと思います。 今までの batch 管理 弊社の分析基盤の batch の管理は crontab で管理していました。 というのも、分析基盤が出来立てということもあって batch の数も依存も少なく crontab で特に問題がなかったからです。 しかし最近は社内利用者も増えてきて batch がコケてて、見えるべき数字が見えなかったりとか影響もそれなりに出てきたのでちゃんと batch を管理しようと思い立ったのが最近の話です。 そこでジョブ管理ツールを導入しようと試みました。 選定 ジョブ管理ツールもたくさんあるのでどのツールを使うか選ぶところから始まりました。 今回の選定基準は以下のとお

    爽快!分析基盤の紹介 #6 : batch の cron を azkaban に移行した話 - sekaie engineers' blog
  • Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

    バッチ処理というのはそれ単体で勉強しようとするとなかなか何を勉強したらいいのかわからないことが多い。 特に経験がWeb系ばっかりだと、いざバッチ処理を実装しようとした時に基的なノウハウを知らないままに書いてしまうことが多い。 バッチ処理というのは実態を整理すると「何らかのトリガーを期に起動し、データをロード・加工・変換・集計してから、出力する」という事になる。 まぁ、INがあって処理してOUTがあるという点では関数だと考えてもいいだろう。 システムの利用者(人に限らない)のアクションとは直接関係ない処理であったり、利用者のアクションをトリガーとしていても、即時にレスポンスがいらないor返せない場合に バッチ処理を選択する事が多い。 実現方式はシェルスクリプト、LL言語、実行可能バイナリだったりするし、デーモンとして立ち上げる場合もある。 利用者の操作に対して対話的・同期的な処理はオンライ

    Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
  • biunit

    物体検出入門 (2021-11) online MMDetection および Detectron2 を利用して物体検知を行う方法を中心に取り扱う。 BioC Asia 2021 Workshop (2021-11) online 主要介绍使用 R 语言中的 torch 包来搭建卷积神经网络做物体分类以及搭建循环神经网络做回归预测的方法。学习神经网络的基础知识请参照 PDF 资料。学习实际操作请参照 GitHub 网页。

  • バッチファイルなどの運用スクリプトの単体テストにserverspecを使ってみた - Qiita

    はじめに スクリプトの単体テストにServerspecを使ってみました。 バージョン 記事作成で用いたOS・モジュールのバージョンはこちらです。 Windows 7 Pro SP1 32bit語版 ruby 2.2.3p173 (2015-08-18 revision 51636) [i386-mingw32] rspec (3.4.0) rspec-core (3.4.1) rspec-its (1.2.0) serverspec (2.26.0) specinfra (2.47.0) ※rubyスクリプトは全て文字コードを「UTF-8」で保存しています。 ※バッチファイルは「Shift-JIS」で保存しています。 テスト対象スクリプト 例として、次のバッチファイルに対してブラックボックステストを実施したいと思います。 @ECHO OFF set PATH_D_SCR=%~dp0

    バッチファイルなどの運用スクリプトの単体テストにserverspecを使ってみた - Qiita
  • はじめてのjBatch - CLOVER🍀

    このあたりのエントリを見て、ちょっとやってみようかなぁと思いまして。 JSR352-Batch Applicationを試してみた(Batchlet編) http://siosio.hatenablog.com/entry/2015/06/06/011830 JSR352-Batch Applicationを試してみた(BatchletでDBアクセス-JPA編) http://siosio.hatenablog.com/entry/2015/06/07/151425 その他、ちょっと目を通したのはこのあたり。 Jbatch実践入門 #jdt2015 http://www.slideshare.net/agetsuma/jbatch-jdt2015 The Java EE 7 TutorialのjBatchの章をテキトーに訳した http://kagamihoge.hatenablog.co

    はじめてのjBatch - CLOVER🍀
  • バッチ処理について再考 - プログラマでありたい

    作業途中のメモです。バッチ処理の定義を確認しようとしてWikipediaをはじめとして幾つかのサイトをみてました。その時に目に入ったのが、下記の文章です。 利点 バッチ処理には以下のような利点がある。 ・多くのユーザーがコンピュータのリソースを共有できる。 ・処理をコンピュータのリソースがあまり忙しくない時間帯(多くは夜間、休日)にシフトできる。 ・人間がついていなくてもコンピュータのリソースが暇にならないように最大限有効活用できる。 ・高価なコンピュータをフルに活用することで費用対効果の効率向上に寄与する。バッチ処理 - Wikipedia これだけみると、人件費に対してコンピュータリソースが高い時代の産物なんですよね。今は、クラウドの登場で、有り余るコンピュータリソースをほぼ自由に低コストに使える時代です。そもそもバッチ処理である必要があるか、考える必要がありますね。特に夜間バッチにつ

    バッチ処理について再考 - プログラマでありたい
  • Hadoop Conference Japan 2014いってきた&しゃべってきた - たごもりすメモ

    Hadoop Conference Japan 2014- Eventbrite 今年も開催されたのでいってきた。主催者の方は当におつかれさまでした。毎回規模がでかくて、これやるのは当大変だろうなと思う。参加登録者は1299名だそうな。 全体的な空気としてはいよいよYARN移行が避けられず、その上に乗っかるデータ処理フレームワークとしてMapReduceも今後存在しつづけるもののSparkやTez*1が登場し、処理記述言語としてはもう単純な処理についてはSQL一択ですかね、という感じ。機械学習系やそのほかのワークロードはまた違うだろうけど。あとはMPP系のエンジンがその脇にある、という。 今回は事例の話が極端に少なくなって、みんな各コンポーネントについての話をしてた気がする。技術的には過渡期だということかな。いいことだ。 参加者アンケートでFluentdを使っていると答えた人が200人

    Hadoop Conference Japan 2014いってきた&しゃべってきた - たごもりすメモ
  • Batch and Stream processing with SQL

    Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigiSATOSHI TAGOMORI

    Batch and Stream processing with SQL