並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 463件

新着順 人気順

バッチ処理の検索結果1 - 40 件 / 463件

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

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

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

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

        Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
      • 安全なバッチ処理の作り方 - KAYAC engineers' blog

        このまえ登り坂の途中でロードバイクのタイヤが破裂しました。ながたです。 今回はバッチ処理について書いてみようと思います。 バッチ処理? Webサービスの処理開始条件は、大まかに次の2つに分けることができます。 ユーザーのアクションに起因するもの ユーザーのアクションに起因しないもの このうち後者の処理をバッチ処理が担当することになります。 バッチ処理の担当分はさらに、 特定の条件(時間やサービスの状態)で実行するもの 手動で実行するもの の2つに分けられます。 今回はこの「手動で実行するもの」について書きたいと思います。 バッチを手動実行するのはどんなとき? バッチ処理を手動で実行するのは、十中八九イレギュラーな状況が発生したときです。 ルーチンワークや実行の条件が決まっているものは何らかの方法で自動化できるはずです。 そしてイレギュラーな状況のほとんどは不具合が発生したとき。 つまり 重

          安全なバッチ処理の作り方 - KAYAC engineers' blog
        • バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング

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

            バッチ処理の採用と設計を考えてみよう | メルカリエンジニアリング
          • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

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

              データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
            • バッチ処理について考える - Qiita

              TL;DR ひとくちにバッチといっても色々ある 夜間バッチをもう作るな オンラインバッチはSQL以前にDB設計がんばれ はじめに Twitterのタイムラインで以下のようなツイートが回ってきました。 バッチ処理をみんな舐めてかかったり、ショボイとか思ってる人多い印象なんだけれども、数十万~数千万件規模のデータを処理したことあるのかな。テンプレ通りのコードじゃ動かないよ?ネットに本にも答え載ってないよ?低レイヤも意識しないと動かないよ? 2020年1月10日 ツイートされたわだっしーさんの意図がどこにあるかは確認してないですが、極限の世界でテンプレート的な処理では対応出来ないのはあるよな、と思いつつもある程度はバッチの作法としての書き方があると思っています。 このツイートとその関連ツイートを読みながら、そういえばバッチ処理に関して書いてある記事はあまり見ないなぁ、とおもったので他のネットや本

                バッチ処理について考える - Qiita
              • バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記

                Ubiregi Advent Calendar 2018 の 18 日目です。 ユビレジではたくさんのお客様の大量の POS データをお預かりしており、様々なバッチ処理も実行されています。今回は特定のケースでバッチ処理の一部が 30 分以上かかっていた処理を 14 秒で終わるようにした話について書きたいと思います。前回の Ruby 2.5 の SEGV と闘った話 - @watson1978 の日記 に引き続き DTrace を使った話になります。 はじめに ユビレジでは CSV ファイルでお客様が特定のデータをダウンロードしたりアップロードできる機能があります。CSV ファイルにエクスポートしたり、CSV ファイルから DB に取り込む処理を Worker を起動してバッチ処理しています。 大量のデータを保有しているアカウントと同量のデータを用意して手元の環境で試したところ時間がかかるこ

                  バッチ処理の一部で 30 分以上かかっていた処理を 14 秒で終わるようにした話 - @watson1978 の日記
                • AWSでバッチ処理を実装する際の選択肢とサービス比較

                  処理が複雑でジョブの依存関係を定義したい場合は、AWS Batch 単体で制御するか、より複雑な場合は Step Functions を用いて Lambda、ECS(Fargate)、AWS Batch(Fargate) を組み合わせる。 AWSにおけるバッチ処理の選択肢 ざっくりとした選択肢は下記。 Lambda ECS(Fargate) AWS Batch(Fargate) これらのサービスに実際は SQS や Step Functions を組み合わせることもあるので選択肢はさらに広がる。 ちなみに、SQS + Fargate(常時起動でポーリング) という構成や、SQS + Lambda + Fargate(都度実行) という構成は、AWS Batch が Fargate に対応した現在は特にメリットがないので取り扱わない。 2021/5/2 追記 「常時リクエストがくるユースケー

                    AWSでバッチ処理を実装する際の選択肢とサービス比較
                  • バッチ処理を再考する - 急がば回れ、選ぶなら近道

                    最近そもそもバッチ処理というものを知らない人達を見ることが多くなりました。某プロジェクトで「いや、ストプロってよくわからないんですよ。最近書いたことないし。」という話をずーっと聞いていたのですが、本人はバッチ処理という意味で話していたことが後から判明した、ということがありました。 ああ、この人はSQLでのバッチ処理しか知らないのですね、とちょっと衝撃ではありました。とうとうそーゆー時代になったかと。 まず、誤解のないようにいうとバッチ処理、という言葉自体はIT固有のものではないです。生産管理や物流や、そういった業務では普通に「バッチ」という言葉をIT以外で使います。ただし意味はある程度同じで、「一定の塊を一度に処理をする」ということです。物流システムの業務要件なんかを詰めているとバッチっていうと、どっちのこと?なんて普通に聞かれたりします。その意味ではバッチの対義語がリアルタイムというのは

                      バッチ処理を再考する - 急がば回れ、選ぶなら近道
                    • 続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん

                      バッチ処理というのがそれ単体で勉強するのが難しく勉強しようとすると何に手を付けるべきかさっぱりわからないということは、先日のブログで述べたとおり。 自分が経験の中で得てきた知見は正しいのかどうか、世間の人に見てもらいたかったというのが書いた動機。 そして、新たな視点や指摘をゲットしてより不測の事態を考慮できている最高なバッチを作りたいという目的があったわけだ。 で、いろいろな意見をもらったのだけどその中で特に辛いと感じたのはこれ。 基幹システムにおけるバッチ処理みたいなものに関する知見については、カジュアルに学ぶ方法はありません。それを体系化した知識として整理した上で、実装できる組織があるんなら、それでメシが食えるんじゃないですかね。— 太一 (@ryushi) 2016, 2月 18 読んでいると 「俺達は障害でつらい思いをしてるし当然先人達も障害でつらい思いをしているはずだ。 なのに、

                        続・Web系の自分が想像と障害で学んだバッチ処理・設計の基本 - コンポツさん
                      • バッチ処理について再考 - プログラマでありたい

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

                          バッチ処理について再考 - プログラマでありたい
                        • AWS でバッチ処理・定期実行する4つの方法

                          4つのバッチ処理・定期実行方式の詳細情報それぞれのバッチ処理・定期実行方式について詳細を見ていきます。 EC2について使用するAWSサービスEC2 処理概要Linux系OSで用いられる定時実行機能であるcronのコマンドを使用する メリット昔からよく使われているcronの知識が使える デメリットEC2インスタンスを起動しておく必要があり、使っていない時間もコストがかかる 障害に弱い。EC2サーバに障害があると終わる サーバが複数になると管理が大変 SQS×ECS使用するAWSサービスEventBridge SQS ECS 処理概要EventBridgeでキューを生成。ECSコンテナでキューを取得して実行する メリットECSを起動しておくため、コンテナの起動時間を要さない。 デメリットEventBridgeでキューを生成するが、EventBridgeはまれに1 つのイベントに対して複数回トリ

                            AWS でバッチ処理・定期実行する4つの方法
                          • AWSサーバーレスバッチ処理アーキテクチャの構築 | Amazon Web Services

                            Amazon Web Services ブログ AWSサーバーレスバッチ処理アーキテクチャの構築 この投稿は、AWSソリューションアーキテクトであるReagan RosarioとWWPSソリューションアーキテクトであるMark Curtisによって書かれました。バッチ処理は多くの組織にとって基礎となるもので、大量の情報を効率的に自動化した形で処理することができます。ユースケースとしては、ファイル取り込み処理、キューベースの処理、トランザクションジョブ、さらに重いデータ処理のジョブなど、多岐にわたります。 この記事では、ファイル取り込み処理を実装するためのバッチ処理を、サーバーレスに実現するための方法を説明していきます。今回の例では、オーケストレーションにAWS Step Functions、オンデマンドのコンピューティングにAWS Lambda、データストアにAmazon S3、メールの送

                              AWSサーバーレスバッチ処理アーキテクチャの構築 | Amazon Web Services
                            • 【AWS】大規模なバッチ処理を支える技術選定

                              ここから、表で挙げた内容をそれぞれ解説していきます。 構築難度に関しては、関数を実装するだけで済むLambdaが最も簡単で、バッチ専用に特化されたサービスであるBatchに関しては比較的バッチ構築はしやすい印象ですが、ECSに関してはバッチに特化していないため、バッチ処理を行うようにカスタマイズする必要があります。 タイムアウト制約に関して留意すべきは、Lambdaの実行時間は15分までなので、それ以上を超える処理時間のバッチは実装できないことです。 起動•実行上のオーバーヘッドに関しては、Lambdaにはコールドスタートがあるため起動時にオーバーヘッドを考える必要があり、Batchではジョブをキューに送信して、最適化のために、ある程度のジョブがキューイングしてから実行しようするので、即時性を求める処理には不向きです。 既存バッチを移行したいケースがあると思いますが、Lambdaで動かせる

                                【AWS】大規模なバッチ処理を支える技術選定
                              • Ruby 製バッチ処理を省メモリ化した - おいちゃんと呼ばれています

                                少し前に Ruby 製のバッチ処理を省メモリ化したときの話をメモしておきます。 どのようなバッチ処理だったか 動画共有サイトにアップされた動画がオトナの事情によって削除されることがしばしばあるということは周知のことだと思う。そこで、一定時間おきに配信元サイトをチェックして、もし動画が配信元から削除されていたら、当該動画をこちらのサイトでも動画一覧に表示させないようにする、検索に引っ掛からないようにする、ということをやっていた。 便宜上、そのバッチ処理のことを「(動画の)存在確認くん」と呼ぶ。 oom-killer に殺されていた 彼は非常にデキる子だったが、なんか最近、動画の落とし漏れがあるなーと感じた。原因を調べたら、メモリを食い過ぎて oom-killer に殺されていた。 cat /var/log/messages Apr 6 12:46:45 xxx001 kernel: Out

                                  Ruby 製バッチ処理を省メモリ化した - おいちゃんと呼ばれています
                                • バッチ処理をAWS Batchを利用して本番運用してみた | CyberAgent Developers Blog

                                  こんにちは。OPENREC事業部で基盤系のエンジニアをしている石田です。 今回はOPENREC.tvに導入されているバッチ処理の基盤をご紹介したいと思います。 この記事では以下のことに関して話そうと思います。 OPENREC.tvでのバッチ処理内容 従来のバッチ処理基盤の課題 新バッチ処理導入のモチベーション 新バッチのインフラ構成 実際に稼働してみて 本番稼働をして明らかになった課題 まとめ OPENREC.tvでのバッチ処理 OPENREC.tvでは、主に以下の処理をバッチとして実行しています。 視聴時間の計測結果の集計 ランキングの集計 検索用のデータの作成 おすすめ動画の作成 従来のバッチ処理基盤の課題 初期のバッチ処理は、1台のEC2で稼働していました。それゆえ、以下の問題を抱えておりました。 インスタンス1台で稼働していることからスケーラビリティが皆無 SPOFなので万一ハード

                                    バッチ処理をAWS Batchを利用して本番運用してみた | CyberAgent Developers Blog
                                  • バッチ処理、ジョブ管理について書いてみる - wyukawa's diary

                                    僕はHive, Pythonでバッチ処理を書いてAzkabanでジョブ管理するシステムを構築、運用した経験が2年ほどあるので今日はバッチ処理、ジョブ管理について書いてみようと思います。 僕の経験上Hadoop特有の部分、例えばテスト環境が作りづらいとかバッチサーバーはジョブをsubmitするだけなので負荷はそんなにかからないとか、はあるけれど割と汎用的なのではないかと思います。そもそもバッチ処理、ジョブ管理について書かれたものはほとんど見た事がないので参考になれば嬉しいし、こういう良い方法もあるよ!とかあれば是非ブログ等に書いてほしいと思っております。 最初に言っておくとバッチ処理、ジョブ管理において重要なのは障害時のリカバリのしやすさです。正常時はまあいいでしょ。 なので例えば引数に日付を持てないようなバッチ書いたら辛いですし、LL言語で書く方がコンパイル、パッケージングとか楽です。CP

                                      バッチ処理、ジョブ管理について書いてみる - wyukawa's diary
                                    • バッチ処理の通知・アラート管理 - CARTA TECH BLOG

                                      こんにちは、nekoyaです。 システムを日々運用していく中で、その処理結果の記録や異常検知の仕組みは地味ながらも大切な存在です。 各種監視ツールからの通知や、ブラウザから利用可能なWebインタフェースなど、その形態も様々です。 今回はその中から、バッチ処理の結果通知について、我々のチームが実践している方式をご紹介します。 loggerを通して記録する まず前提として、通知する内容はプログラマ自身が出力することが基本になります。 自分はここ数年はPythonをメインに使っていて、標準のloggingモジュールを通して import logging logger = logging.getLogger(__name__) logger.info('hello!') のようにログを吐いておくと、スクリプトの終了時にそれまで出力したログがいい感じに集約されて通知されるようにしています。 ログレベ

                                        バッチ処理の通知・アラート管理 - CARTA TECH BLOG
                                      • 大量データのバッチ処理を高速化するHadoop

                                        Hadoopというソフトウエアが、いま注目を集めています。米Googleが発表した論文のアイディアをオープンソース・モデルで実装したソフトウエアです。膨大な量のデータを処理する必要に迫られた企業や研究組織が、続々とHadoopを実際に活用しはじめています。 私たちの研究グループでは、Wikipediaなどの巨大なテキスト・データを解析するために、2007年頃からHadoopを利用しはじめましたが、日本国内でも2009年あたりからHadoopを使った事例を多く見聞きするようになりました。国内で初めてのHadoop関連イベントが2009年11月に東京で開催され、オライリー・ジャパンから2010年1月にHadoop本の邦訳が出版されるなど、Hadoopが多くの開発者の注目を浴びています。 しかしながら、「Hadoopは何となくすごそうなんだけど、複雑だし、どんなソフトなのかいまいち分からないんだ

                                        • Hadoopの現実解「バッチ処理」の常識をAsakusaで体得

                                          Hadoopの現実解「バッチ処理」の常識をAsakusaで体得:ビッグデータ処理の常識をJavaで身につける(7)(1/4 ページ) Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 “ビッグデータ”時代の「バッチ処理」 アプリケーション開発というと、システム利用者に一番近い画面系の開発が花形ですね。一方「バッチ処理」というと、何となく地味な感じがしますが、「バッチ処理」は縁の下の力持ち、これがないと、大概のシステムは稼働できません。 絶対に必要だけど、影の薄い「バッチ処理」でしたが、“ビッグデータ”への注目度が高まり、大量データを短時間に処理する「並列分散処理バッチ」が活躍する場面も増えてきました。 本稿では、並列分散で「バッチ処理」を行う方法につい

                                            Hadoopの現実解「バッチ処理」の常識をAsakusaで体得
                                          • GitHub製Resqueを使用したRubyでのバックグラウンド処理(バッチ処理) - Masatomo Nakano Blog - Web開発を極める

                                            そこそこの規模のWebシステムになってくるとバックグランド処理(batch処理)は欠かせないものになってくる。メールの送信、データの日次、月次、年次処理、削除(フラグ)データのpurgeやバックアップ、等々いろいろな物が出てくる。 現在はBackgrounDRbを使っているが、いろいろといまいちなので今回Resqueを評価してみた。ちょっと触った段階での第一印象をメモ。 まず、バッチ処理系で評価のポイントになってくる部分はなんだろうかと考えてみると、なんと言っても見通しのよさと異常系の処理だと思う。画面系と違い、バッチ処理は「見えにくい」ところで実行されるので、その二つが特に大事になってくる。「知らないうちに止まっていました」では困るのがバッチ処理。 たとえば、 異常時の処理無視?管理者に通知?リトライ? 復旧処理タスクの削除(問題を修復後)リトライ 状態の監視いくつのJobが残っているか

                                            • Slack、全ユーザーが接続できなくなった大規模障害の原因はバッチ処理にバグがあったためと報告

                                              チャットサービスを提供するSlackは、太平洋夏時間の6月27日午前6時30分(日本時間6月27日午後10時30分)頃から約3時間、全てのユーザーでSlackが利用できなくなる深刻な障害に見舞われました。 同社はその後、障害についての報告をステータスページに掲載。障害の原因が、データのバッチ処理に含まれていたバグであったことを明らかにしました。 同社の報告の一部を引用します。 On June 27th (yesterday) between 6:33 a.m. and 9:49 a.m. PDT Slack experienced an outage where people could not connect to their workspaces. The network problems were caused by a bug included in an offline batc

                                                Slack、全ユーザーが接続できなくなった大規模障害の原因はバッチ処理にバグがあったためと報告
                                              • バッチ処理のスケジューリングパターン

                                                この記事はこの記事は Google Cloud Japan Customer Engineer Advent Calendar 2019 の 12日目の記事です。 はじめにGoogle Cloud Platform (GCP) でバッチ処理を起動するための以下のパターンについてご紹介したいと思います。以下、8パターンあげてみました。とはいえ、最後の3つは GCP のバッチスケジューリングという観点からは少し外れますが、バッチの起動時に使われるということでご容赦を。 Cloud Scheduler : フルマネージドな cron ジョブスケジューラです。フルマネージドという点が非常に大きなメリットであり、多くの処理を自動化し実行することが可能です。Google App Engine cron サービス : HTTP GET を利用して、特定の URLを呼び出します。Google AppEng

                                                  バッチ処理のスケジューリングパターン
                                                • PHPでバッチ処理する際に便利なglob使いこなしテクニック:phpspot開発日誌

                                                  PHP Magic Function : glob() | PHP Code Base PHPでバッチ処理する際に便利なglob使いこなしテクニック。 globl("*.gif"); 等とすることで、同じディレクトリにある gif 拡張子のファイルを配列で受け取るなんていう便利な関数がありますが、その glob をもっと使いこなすテクニックが紹介されていましたのでご紹介。 階層的なファイルを探索 glob('pear/*/DB/*') のようにして、階層的にファイルを探索することが出来る 第二引数を活用 第二引数は個人的に使ったことなかったのですが、これはかなり便利そう glob("*.gif", 第二引数); GLOB_MARK: 返ってきたディレクトリの最後に / を付ける GLOB_NOSORT: ソートを行わない GLOB_NOCHECK: 検索パターンにマッチするファイルが見つか

                                                  • 大量データをスムーズに処理 失敗しないバッチ処理のアーキテクチャ設計、5つのポイント

                                                    バッチ処理とは 前回はWebアプリのアーキテクチャ設計の基礎を解説しました。今回はバッチ処理を円滑に行うためのアーキテクチャ設計のポイントを紹介します。 バッチ処理とは、蓄積された複数件のデータを、まとめて一括処理する処理形態のことを指します。このような処理形態においては、大量データの処理を一定時間以内に完了させるためのアーキテクチャを、さまざまな角度から検討していく必要があります。 また、画面オンライン処理とは異なり、ユーザーとの対話なく処理が進められます。よって、バッチ処理の途中でエラーが発生した場合の対応を考慮して、アーキテクチャを設計しなければなりません。バッチ処理の基本についてより深く知りたい方は、下記参考記事をご参照ください。 参考リンク:鉄板焼のお店から学ぶ、バッチ処理"超"入門(@IT) バッチ処理におけるアーキテクチャ設計時の検討ポイント バッチ処理のアーキテクチャを考え

                                                      大量データをスムーズに処理 失敗しないバッチ処理のアーキテクチャ設計、5つのポイント
                                                    • バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog

                                                      アプリケーションエンジニアのid:tkzwtksです。今回はバッチ処理の冪等性(べきとうせい、idempotence)について、どう考えるか/考えてきたかをご紹介します。 このエントリを書くきっかけとなったのは、はてなエンジニア有志で定期的に開催しているCloudNative推進会です。ここでは、社内のシステムをクラウドネイティブにしていくため「クラウドネイティブなシステムとはどういうものか?」を考えており、この会での「クラウドネイティブなバッチ処理」の議論も踏まえつつ説明していきます。 バッチ処理における冪等性とは メッセージ送信の信頼性を考慮する クラウドネイティブで可用性を高めるために どのような場合に冪等性を考慮すべきか 冪等な実装における3つのケーススタディ ケース1: n分前までに更新されたレコードを集計する ケース2: DB上の対象レコードを更新する ケース3: 対象ユーザー

                                                        バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog
                                                      • メルペイにおける大規模バッチ処理 | メルカリエンジニアリング

                                                        この記事は MERPAY TECH OPENNESS MONTH の 13日目の記事です。 こんにちは、メルペイ ソフトウェアエンジニアの laughngman7743 です。 メルペイではマイクロサービスにおけるデータストアのデータや、アプリケーションのログを有効活用できるような基盤づくりをデータプラットフォームチームとして行っています。 データプラットフォームではラムダアーキテクチャに基づき、スピードレイヤとして Cloud PubSub と Cloud Dataflow を利用した仕組みに加え、バッチレイヤとして Cloud Composer と Cloud Dataflow を利用した仕組みを構築しています。 この記事ではバッチレイヤのアーキテクチャについてご紹介します。 スピードレイヤのアーキテクチャについては 「GCPでStreamなデータパイプライン始めました」 を参照くださ

                                                          メルペイにおける大規模バッチ処理 | メルカリエンジニアリング
                                                        • 画像圧縮ツール「Optimage for Mac」がv3.0へメジャーアップデート。APNGやHEVC、MP4、WebMの圧縮やリサイズなどのバッチ処理が可能に。

                                                            画像圧縮ツール「Optimage for Mac」がv3.0へメジャーアップデート。APNGやHEVC、MP4、WebMの圧縮やリサイズなどのバッチ処理が可能に。
                                                          • バッチ処理はJavaでバッチリ?その現状とこれから

                                                            「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集部) バッチ処理の変遷 Javaの登場以来、ホストコンピュータ、専用サーバなどで動いていた数多くのレガシー(既存資産)システムが、Java環境へ移行してきました。Web上のオンラインアプリケーションにおいては、特にJavaの活躍の場が増えたといってもよいでしょう。 その中でも移行が遅れており、旧来のマシン環境、旧来の言語での利用が続いてきたものに「バッチ処理」が挙げられます。 ■そもそも「バッチ処理」とは何か? ここでいうバッチ処理はWindowsのバッチファイル(.bat)を示すのではありません。大量のトランザクションデータを扱い、大量のデータを順次処理することを示します。 また、バッチ

                                                              バッチ処理はJavaでバッチリ?その現状とこれから
                                                            • 待望のバッチ処理機能がJava EE 7で標準化。「jBatch」で何ができるのか、どう使うのか? - builder by ZDNet Japan

                                                              Java EE 7では、企業システムで多用されているバッチ処理機能が「jBatch」として標準化された。GlassFish 4で実際に試すこともできる。jBatchの特徴、使いこなしのポイントを紹介する。 ユーザー企業も加わって標準化されたjBatch Java EE 7の目玉の1つは、企業システムで多用されているバッチ処理に関して、Javaによる実装方法が「JSR 352: Batch Applications for the Java Platform(通称:jBatch)」として標準化されたことだ。日本オラクルが2013年8月に開催した「リリース記念:今から始めるJava EE 7解説セミナー」では、NTTコムウェア品質生産性技術本部 技術SE部OSS・AP技術担当の上妻宜人氏によるセッション「Java EE 7から加わるバッチ仕様 Batch Applications for th

                                                              • リクルートや楽天、分散バッチ処理ソフトHadoopの利用を拡大

                                                                リクルートや楽天が、オープンソースの分散バッチ処理ソフト「Hadoop」の利用を拡大している。リクルートはWebサーバーのログ解析用DWH(データウエアハウス)としてHadoopを採用。楽天はグループ内の全ログデータを対象とした統合ログ解析基盤の構築を、Hadoopベースで進めている。 NTTデータやウルシステムズなどのシステムインテグレータも、Hadoopを使ったシステム構築に取り組み始めており、1000台規模のHadoopクラスターもすでに稼働している。これら事例は、2010年12月15日に東京・秋葉原で開催された「日経コンピュータセミナー・Hadoopが変える企業情報システムの実像」で発表された。 DWHの構築にHadoopとHiveを採用--リクルート リクルートは、同社の「じゃらんnet」や「カーセンサー.net」「suumo」といった様々なWebサイトのログデータを一元的に解析

                                                                  リクルートや楽天、分散バッチ処理ソフトHadoopの利用を拡大
                                                                • Photoshop一括処理「バッチ処理」に関して失敗しない設定方法 |https://wp.yat-net.com/name

                                                                  Photoshopの画像解像度やカンバスサイズなどを複数のファイルに同一処理をさせる機能としてバッチ処理というものがあります。しかしこのバッチ処理の設定に少しクセがあり、イマイチ上手く行かなかったりするのでポイントを押させてブログにポストしておきます。 今回の設定内容 僕自身のブログ用に作成するので、以下の条件の自動処理をサンプルとして記述します。 画像解像度を幅426pxに統一 元画像を保存するフォルダと、一括処理後の画像を分けて保存する 今回解説で使用している環境はwindowsのphotoshopCS4 今回自動処理を行うに当たり、システム上に「処理用」というフォルダを作り、更にその中に「処理前」と「処理後」というフォルダを作成しました。一括処理する元の画像ファイルを「処理前」に入れておき、一括処理で解像度を変更したものを「処理後」フォルダへ保存するようにします。 自動化させる処理を

                                                                    Photoshop一括処理「バッチ処理」に関して失敗しない設定方法 |https://wp.yat-net.com/name
                                                                  • YappoLogs: App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ

                                                                    App::Ikachan - 様々なサーバのバッチ処理の結果等を IRC のチャンネルに通知するサーバ 皆さんは、日々のお仕事の中で様々なバッチ処理やデプロイツールまたはCIツールを動かすと思います。 一般的なネット系のエンジニアは仕事のコミュニケーション手段として IRC を用いているというのが有名ですが、これらバッチ処理の処理状況等を普段の生活環境である IRC に流せたら便利です。 実際に前の会社では、 deploy tool, ci tool, etc batch script の処理結果を社内 IRC channel に通知するような物を hirose31 さんが作ってくれて、とても便利でございました。 とはいえ、各種スクリプトが独自に IRC server に繋ぎに行く事は大げさですし、バッチが走る都度 join/part されたらうざいです。 そこで前の会社では、 IRC s

                                                                    • お急ぎ振込の締め処理バッチの事例で見ていく バッチ処理の設計結果 | メルカリエンジニアリング

                                                                      こんにちは。メルペイでバックエンドソフトウェアエンジニアをしている id:koemu です。 今回は、前回の記事でお話したことを踏まえ、私が開発を担当して実際に動いているバッチプログラム「お急ぎ振込 締め処理バッチ(以下、締め処理バッチ)」について、述べていきます。 本記事では、「締め処理バッチについて」と「前回の記事に照らし合わせてどう設計されているか」の2点に分けて説明します。内容は、特に記載のない限り、本記事執筆時点のものとなります。 締め処理バッチについて 事例の話に移る前に、これから説明する締め処理バッチの処理がどのようなサービスを提供するのか、ご案内します。 お急ぎ振込とは お急ぎ振込とは、メルカリの中で売り上げたお金を皆様の銀行口座に出金できる機能の1つです。当初から存在している振込申請機能より早く送金することができ、最短1営業日で出金することが可能です。2017年の夏の終わ

                                                                        お急ぎ振込の締め処理バッチの事例で見ていく バッチ処理の設計結果 | メルカリエンジニアリング
                                                                      • Rails/ActiveRecord バッチ処理の最適化 - Hack Your Design!

                                                                        検証環境 前提条件 オリジナルコード ベンチマーク 最適化1: 簡単な最適化 ベンチマーク 最適化2: where & each を使う ベンチマーク 最適化3: find_each を使う ベンチマーク 最適化4: in_batches & update_all を使う ベンチマーク 最適化5: where & update_all ベンチマーク 最終結果 「ActiveRecordデータ処理アンチパターン」で発表します 参考リンク Railsのバッチ処理最適化の記事書いたら需要あるかな — toshimaru (@toshimaru_e) December 2, 2017 ということで今日はRailsバッチ処理の最適化について書いてみたいと思います。 検証環境 コードの検証に使った環境は下記の通りです。 macOS High Sierra (2.3 GHz Intel Core i5

                                                                          Rails/ActiveRecord バッチ処理の最適化 - Hack Your Design!
                                                                        • AWSサービスを用いた今後のバッチ処理のお話〜開発本部・TechLunch〜 - MEDLEYオフィシャルブログ

                                                                          オンライン診療アプリ「CLINICS」を開発している田中です。 本日は、メドレー開発本部にて隔週で行われている勉強会(TechLunch)で、今後のバッチ処理構成の1つとして活用できそうなAWSサービスの紹介を行ったので、その一部を紹介したいと思います。 背景と勉強会の目的 メドレーでのバッチ処理 メドレーの各プロダクトは環境として主にAWSを使用しており、いわゆる「バッチ処理」(時間起動でのデータ一括処理系)については、スケジューラとして使用しているJenkinsからバッチ用EC2インスタンス上のバッチ処理をキックする、という構成が多いです。 (短時間で完了し、ワークフロー自体シンプルなバッチについては、スケジューラにLambdaを利用する構成も増えてきました) その他、SQSを用いたキューイング処理、Kinesis/Lambdaを使用したログストリーミング処理など様々な構成で動いていま

                                                                            AWSサービスを用いた今後のバッチ処理のお話〜開発本部・TechLunch〜 - MEDLEYオフィシャルブログ
                                                                          • Java、バッチ処理の仕様を策定へ | エンタープライズ | マイコミジャーナル

                                                                            Java Programming Language Javaを使ったバッチアプリケーションの開発と運用の標準化を目指した新しい仕様「JSR 352: Batch Applications for the Java Platform」の策定作業が開始された。IBMから提出された仕様で、Java SEとJava EEの双方における利用を想定。策定目標時期は2012年第2四半期とされており、かなりアグレッシブに作業を進める気概であることがわかる。 JSR 352ではバッチアプリケーションの開発と、ジョブをスケジュールに従って実行するための実行環境の2つに対して、標準化されたプログラミングモデルを実現することを目指している。提案されている資料では「バッチジョブ」「バッチジョブステップ」「バッチアプリケーション」「バッチイグゼキュタ」「バッチジョブマネージャ」を定義しモデリング対象を明確化している。

                                                                            • AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05

                                                                              AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan

                                                                                AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
                                                                              • Objective-Cでバッチ処理をするライブラリAAMCommandKit作りました | fladdict

                                                                                「第1回 iPhone_dev_jp みんなが幸せになるハッカソン」の僕の成果物として、AAMCommandKitを公開しました。ObjectiveC用のCommandパターンライブラリです。 Commandライブラリって? セレクターやブロック、あるいは一連の処理などを、”◯◯Command”という1つのクラスにカプセル化したものです。Commandをallocして、executeをコールするだけで様々な処理を実行できます。 Commandライブラリの強力なところは、複数のコマンドを配列にれて、まとめてバッチ処理したり、非同期に並行実行したりできる点です。元々は僕がFlash案件でつかっていたライブラリで、複雑なアニメーションや遷移と、裏側で行う処理を綺麗に記述する為に作りました。 どんなことができるの? 例えば、下記のようなメンドクサイ処理をシンプルに記述できます。 “Start”を表

                                                                                • [公開版]社内バッチ処理ガイドライン - Qiita

                                                                                  このガイドラインについて こちらのガイドラインは社内のバッチ処理スクリプト開発にあたっての、安定運用等に関わるガイドラインを公開用に書きなおしたものになります。 バッチサーバ規則 基礎項目 以下の要項を満たすことを確認する その他の用途で動作しているサーバ上での動作は行っていないこと 運用期間中に想定しうるデータ量にてOOMキラーに殺されないこと 想定の時間で終了すること データの読み込みは極力Read Replicaを見ていること データの書き込みによる本番サーバへの影響が見積もれていること 冪等性が担保されており、何度実行しても処理上の不具合は発生しないこと 多重実行時に不整合が発生しないこと エラー時の社内への通知が用意されていること エラー時の通知には再処理のための手順が揃っていること、もしくはそのドキュメントの場所が示されていること 個人ユーザー下にログや成果物を絶対に書き込んで

                                                                                    [公開版]社内バッチ処理ガイドライン - Qiita