並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 42件

新着順 人気順

バッチの検索結果1 - 40 件 / 42件

バッチに関するエントリは42件あります。 batchaws設計 などが関連タグです。 人気エントリには 『データベースを遅くするための8つの方法』などがあります。
  • データベースを遅くするための8つの方法

    はじめに Twitterのタイムラインを見ていたらバッチ系のプログラムで逐次コミットをやめて一括コミットにしたら爆速になったというのを見ました。当たり前でしょ、と思ったけど確かに知らなければ分からないよね、と思って主に初心者向けにRDBを扱うときの注意点をまとめてみました。 プログラミングテクニック的なところからテーブル設計くらいの範疇でDBチューニングとかは入ってないです。 自分の経験的にOracleをベースに書いていますが、他のRDBでも特に変わらないレベルの粒度だと思います。 大量の逐次コミットをする バッチアプリケーションでDBにデータをインサートすると言うのはかなり一般的な処理です。しかしデータ量が少ない時はともかく大量のインサートを逐次コミットで処理するとめちゃくちゃ遅くなります。数倍から十数倍遅くなることもあるので、10分程度のバッチが1時間越えに化けることもザラにあるので原

      データベースを遅くするための8つの方法
    • バッチ処理 プラクティス

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

        バッチ処理 プラクティス
      • 検索が爆速になるデータベース設計を公開します

        こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ たとえば、旅行会社向けのアプリケーションであれば、宿泊素材の情報としては ホテルの情報「〇〇ホテル」(~約2万件) プランの情報「朝食付き・ロングステイ△△プラン」(0~1500件/施設) 客室の情報(~100件/

          検索が爆速になるデータベース設計を公開します
        • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

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

            データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
          • 大公開!バッチアプリケーションの品質を高めるZOZOの『バッチ開発ガイドライン』 - ZOZO TECH BLOG

            こんにちは。MA部の田島です。 弊社では開発ガイドラインというものを用いて、システムの品質を担保しています。今回私がテックリードを務めているということもあり、バッチアプリケーションを開発するためのガイドラインを作成しました。本記事では「開発ガイドライン」と「バッチ開発ガイドライン」を紹介します。 バッチアプリケーション開発に限定したTipsはまとまっているものが多くないため参考にしていただければと思います。 開発ガイドラインについての紹介 冒頭でも紹介した通り弊社では、開発ガイドラインというものを用いてシステムの品質を担保しています。バッチ開発ガイドラインを紹介する前に、まず開発ガイドラインを紹介します。 開発ガイドラインの種類 開発ガイドラインは現在、以下の種類が存在します。 共通 Android iOS Frontend Backend Infra API Batch DB(Datab

              大公開!バッチアプリケーションの品質を高めるZOZOの『バッチ開発ガイドライン』 - ZOZO TECH BLOG
            • バッチ処理について考える - Qiita

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

                バッチ処理について考える - Qiita
              • 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でバッチ処理を実装する際の選択肢とサービス比較
                • 実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 - エンジニアHub|Webエンジニアのキャリアを考える!

                  実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 インフラの特性をふまえ、ミドルウェアの挙動を理解し、プロファイリングによってボトルネックを把握し、要求に合ったアーキテクチャを選択する。そういった工夫を重ねることでアプリケーションのパフォーマンスを改善する事例を、Sansanの千田智己さんに聞きました。 アプリケーションの設計・実装方法を変えることで、性能が格段に向上するケースは数多くあります。有名IT企業のエンジニアは、どのような方針のもとでアーキテクチャあるいはアルゴリズム選択などでパフォーマンスを改善しているのでしょうか? 法人向けクラウド名刺管理サービス「Sansan」や個人向け名刺アプリ「Eight」を提供するSansan株式会社の千田智己さんに、これまで取り組んできた事例と、そのノウハウを教えていただきました。 千田 智己(せ

                    実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 - エンジニアHub|Webエンジニアのキャリアを考える!
                  • これから「みずほ銀行」に起こる、ヤバすぎる現実…システムの「爆弾」を誰も処理できない(週刊現代) @moneygendai

                    今年8月に発生したみずほ銀行のシステムトラブル。実は19年前にもこれに似たケースが起こっていたことを【前編】『「みずほ銀行」のシステム障害はなぜ防げなかったのか…エンジニアを見下す「悪しき体質」』で報じた。多発する「システム障害」の爆弾を抱えた同行は今後どうなっていくのか…? 隠れていた「古の言語」 全体像の見えない「バベルの塔」と化したみずほのシステム。その成り立ちとは、どのようなものなのか。 過去に2度、みずほは大きなシステム障害を起こしている。1度目は前編でも触れた、'02年の3行統合に伴う混乱だ。 統合時、みずほは旧3行が使っていた複数の異なるシステムを生き残らせたまま、「ゲートウェイ・システム」と呼ばれる中継プログラムでそれらを繋ぎ合わせるという方針を打ち出した。 だが、この建て付けそのものに難があった。当時の事情を知るみずほ行員が言う。 「勧銀は富士通製のメインフレーム(大型コ

                      これから「みずほ銀行」に起こる、ヤバすぎる現実…システムの「爆弾」を誰も処理できない(週刊現代) @moneygendai
                    • 「画像の一括ダウンロード」「ページ情報の抽出」などの操作をプログラミング不要で自動化できる「Browserflow」レビュー

                      インターネットを利用していると「Googleマップの検索結果をスプレッドシートにまとめる」「Twitterのフォローを全て解除する」といった手動でポチポチ作業するのは面倒な作業が必要になることがあります。Google Chrome向け拡張機能「Browserflow」を使えばブラウザ上の面倒な作業をプログラミングの知識がなくとも簡単に自動化できるとのことなので、実際にBrowserflowを使って使い勝手や自動化の方法を確認してみました。 Browserflow - Automate your work on any website https://browserflow.app/ Browserflowの公式サイトにアクセスすると、拡張機能配布ページへリンクする「Add to Chrome」と記されたボタンが用意されているのでクリックします。 配布ページに移動したら「Chromeに追加」

                        「画像の一括ダウンロード」「ページ情報の抽出」などの操作をプログラミング不要で自動化できる「Browserflow」レビュー
                      • レガシーとの向き合い方 〜cron から Rundeck へ〜 - DMM inside

                        |DMM inside

                          レガシーとの向き合い方 〜cron から Rundeck へ〜 - DMM inside
                        • 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つの方法
                          • バッチシステムをクラウドネイティブにするために考えたこと

                            Cloud Native Days Tokyo 2022 Session: https://event.cloudnativedays.jp/cndt2022/talks/1518

                              バッチシステムをクラウドネイティブにするために考えたこと
                            • Pythonでいい感じにバッチを作ってみる - prefectをはじめよう - JX通信社エンジニアブログ

                              JX通信社シニア・エンジニアで, プロダクトチームのデータ活用とデータサイエンスのあれこれ頑張ってるマン, @shinyorke(しんよーく)です. 最近ハマってるかつ毎朝の日課は「リングフィットアドベンチャー*1で汗を流してからの朝食」です. 35日連続続いています. 話は遡ること今年の7月末になりますが, JX通信社のデータ基盤の紹介&「ETLとかバッチってどのFW/ライブラリ使えばいいのさ🤔」というクエスチョンに応えるため, このようなエントリーを公開しました. tech.jxpress.net このエントリー, 多くの方から反響をいただき執筆してよかったです, 読んでくださった方ありがとうございます! まだお読みでない方はこのエントリーを読み進める前に流して読んでもらえると良いかも知れません. 上記のエントリーの最後で, 次はprefect編で会いましょう. という挨拶で締めさせ

                                Pythonでいい感じにバッチを作ってみる - prefectをはじめよう - JX通信社エンジニアブログ
                              • 【AWS】大規模なバッチ処理を支える技術選定

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

                                  【AWS】大規模なバッチ処理を支える技術選定
                                • EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers

                                  概要 ソーシャル経済メディア「NewsPicks」SREチームの中川です。 皆さんはバッチ処理基盤はどうされていますでしょうか。 NewsPicks では少し前まではそれらをEC2、cronの組み合わせで動作させていました。 何年も前からこの仕組みだったのですがSREとしてはEC2の面倒見るのも手間ですし、それ以上にcronを変更する際のオペレーションミスが目立ったのが懸念点でした。 その為、まずはAWSマネージド化するための基盤を整備し、その後バッチアプリを載せ替えていくようにしました。 対応前の基盤構成 同じSREチームの安藤さんが CloudNative Days Tokyo 2023 で登壇されたときの資料をお借りします。 ご覧の通り、大体のサービスはマネージド化していましたがバッチ基盤だけは旧来のままEC2インスタンスを利用していました。 10年モノのサービスのインフラを漸進的

                                    EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers
                                  • AWSサービスで実現するバッチ実行環境のコンテナ/サーバレス化/ Container service of batch execution environment realized by AWS service

                                    AWS DevDay Tokyo 2019での発表資料です

                                      AWSサービスで実現するバッチ実行環境のコンテナ/サーバレス化/ Container service of batch execution environment realized by AWS service
                                    • 冪等なデータ処理ジョブを書く - クックパッド開発者ブログ

                                      こんにちは、マーケティングサポート事業部データインテリジェンスグループの井上寛之(@inohiro)です。普段はマーケティングに使われるプライベートDMP(データマネジメントプラットフォーム)の開発を行っています。本稿では、その過程で得られた冪等なデータ処理ジョブの書き方に関する工夫を紹介したいと思います。今回は、RDBMS上で SQL によるデータ処理を前提に紹介しますが、この考え方は他の言語や環境におけるデータ処理についても応用できるはずです。 まずクックパッドのDMPと、冪等なジョブについて簡単に説明し、ジョブを冪等にするポイントを挙げます。また、SQL バッチジョブフレームワークである bricolage を使った、冪等なジョブの実装例を示します。 クックパッドのDMPと冪等なジョブ クックパッドのプライベートDMPは、データウェアハウス(社内の巨大な分析用データベースで、クックパ

                                        冪等なデータ処理ジョブを書く - クックパッド開発者ブログ
                                      • 見せてやるよ、�EventBridge の本気ってやつをな / The art of EventBridge

                                        動画はこちら https://youtu.be/BdSB9yBilxY?t=3812 見せてやるよ、�EventBridge の本気ってやつをな / The art of EventBridge

                                          見せてやるよ、�EventBridge の本気ってやつをな / The art of EventBridge
                                        • OpenAIのBatch APIを使ってお得にプロンプトを一括処理してみる - Taste of Tech Topics

                                          はじめに こんにちは。データサイエンスチームYAMALEXのSsk1029Takashiです。 最近はOpenAIに日本支社が出来て、日本語対応が加速するというニュースにわくわくしています。 今回はそんなOpenAIから発表されたBatch APIという機能が便利、かつお得な機能だったのでどのように使えるのか試してみます。 Introducing the Batch API: save costs and get higher rate limits on async tasks (such as summarization, translation, and image classification). Just upload a file of bulk requests, receive results within 24 hours, and get 50% off API pri

                                            OpenAIのBatch APIを使ってお得にプロンプトを一括処理してみる - Taste of Tech Topics
                                          • バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog

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

                                              バッチ処理における冪等性の検討 ─ クラウドネイティブもしくは、はてなダイアリーの自動移行を題材に - Hatena Developer Blog
                                            • 広告配信を支えるバッチ基盤をサーバーレス移行した話(ECS Fargate, Step Functions)@ Serverless Meetup Tokyo #16

                                              Zucks inc. (VOYAGE GROUP inc.) https://serverless.connpass.com/event/165352/ https://youtu.be/dSoIQhobDb8?t=8021

                                                広告配信を支えるバッチ基盤をサーバーレス移行した話(ECS Fargate, Step Functions)@ Serverless Meetup Tokyo #16
                                              • 異なるシステム間での大量データの同期について - shallowな暮らし

                                                2022/03/19 追記 続編みたいなやつ書きました。 shallow1729.hatenablog.com はじめに メリークリスマス!! はてなのエンジニアのid:shallow1729です。この記事ははてなエンジニア Advent Calendar 2019の25日目の記事です。昨日はid:hitode909さんの以下の記事でした! blog.sushi.money 今回はタイトルにある「異なるシステム間での大量データの同期」について、仕事でいくつか関わったので悩んだ事をログに残そうと思います。一緒に難しいねって笑ってくれたら嬉しいです。 「異なるシステム間での大量データの同期」って何のこと? これは自分がつけた名前なのですが、例としてはシステムを完全にリニューアルするとかでDBのスキーマを再設計したシステムにデータを移すような場合や、あるシステム上の大量のデータをスプレッドシート

                                                  異なるシステム間での大量データの同期について - shallowな暮らし
                                                • Amazon LinuxのEOLに伴いバッチをサーバレス化しFargateに移行した話 - クラウドワークス エンジニアブログ

                                                  はじめまして、2020年3月に中途入社したSREチームの @bayashiok です。 今回は入社後、Fargateでサーバレスバッチ基盤を構築した話を書いていきます。 目次 目次 経緯 Fargateを選んだ理由 1. リソースの見積もりがCPU/Memoryだけですむ 2.スケーリングを考えなくて良くなる 3. セキュリティレベルの向上につながり管理負荷が減る 現行システムで発生している問題点の解消 構成 FargateのトリガーとしてRundeckを採用 理由1: バッチ実行が行われる場所でログを見たかった 理由2: ジョブ失敗やSlack通知の仕組み、リトライ方法やジョブ連携などの作り込みを簡単にしたかった ecs-taskとの連携について デプロイ 1. wrapperコンテナのデプロイ 2. バッチのデプロイ Fargateタスク実行について 移行後の総括 よかった点 悪かった

                                                    Amazon LinuxのEOLに伴いバッチをサーバレス化しFargateに移行した話 - クラウドワークス エンジニアブログ
                                                  • Google Compute Engine を用いた機械学習モデル学習バッチのスケジュール実行 - MicroAd Developers Blog

                                                    こんにちは、機械学習エンジニアの河本 (@nnkkmto) です。マイクロアドのシステムにおいて、機械学習が必要な部分の研究開発及び実装を担当しています。 この記事では GCP (Google Cloud Platform)、特に GCE (Google Compute Engine) を用いた機械学習モデル学習バッチのスケジュール実行について紹介できればと思います。 はじめに 前提 全体の流れ 各処理の詳細 スケジューリング Cloud Scheduler Cloud Pub/Sub Cloud Functions インスタンス起動による学習バッチの実行 preempted 時のリトライ処理 終わりに はじめに 現在マイクロアドでは、以下にあるようにGCP を用いた機械学習基盤の構築を進めていて、Kubeflow を用いた実行環境へ移行予定です。 オンプレ×Google Cloud Pl

                                                      Google Compute Engine を用いた機械学習モデル学習バッチのスケジュール実行 - MicroAd Developers Blog
                                                    • WordPressでWP-CLIを使って記事移行とかを少し楽にする | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

                                                      こんにちは、エンジニアのづやです。 ここのところ、「CSVからWordPressにデータを取り込みたい!」「ルールに沿って特定のカテゴリを違うカテゴリに付け替えたい!」などのお話を受けることが多かったので、苦労した点とかを共有したいと思います。 気軽なやり方 全然大したことない処理のときは、phpファイルを作って、WordPressだけ呼び出して処理ですね、お手軽。 <!--?php require_once "wp-load.php"; // パスは環境によって変えてね ?--> これを読み込んだら、WordPress関数が使えるので、CLIからphpとして実行したり、まあdocument rootにおいて実行して消すなりしちゃえばOKです。WordPress管理外じゃないけど、WordPressの記事を引っ張りたいときとかと一緒ですね。 たまに「wp-blog-header.php」を

                                                        WordPressでWP-CLIを使って記事移行とかを少し楽にする | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
                                                      • AWS Batch, Lambda, ECS Task 比較:バッチやジョブにはどれを使う? - Tech Blog

                                                        CTOの椎名です。最近弊社では家族アプリFammの印刷・配送・通知など様々な処理を使うために AWS Lambda と AWS Batch を使う量が増えてきて、ECS Fargate も徐々に導入をはじめてきました。 Lambda も Batch も ECS Task も、何かのジョブを単発/定期でサーバー無しで実行するための手段として似ているところがあります。何かのバッチ/ジョブを作る時に「これはLambdaで作るべきか?Batchで作るべきか?」などで迷う事もあります。もちろん製品名の通り「バッチならAWS Batch」と言う考え方もありますが、AWS Batchではオーバーキルな時もあれば、かゆいところに手が届かない時もあります。 今回はこれらの特徴やメリット/デメリットの比較をまとめます。 AWS Lambda 簡単に言うと「コードだけアップロードして実行トリガーを決めればその通

                                                          AWS Batch, Lambda, ECS Task 比較:バッチやジョブにはどれを使う? - Tech Blog
                                                        • 転職会議から冪等でないバッチ処理を根絶した話 - LIVESENSE ENGINEER BLOG

                                                          こんにちは、かたいなかです。 最近転職会議のバッチ処理をすべて冪等にし、処理失敗時に気軽に再実行できるようにすることで運用性を向上させました。 今回の記事ではその取り組みを紹介します。 再実行すると重複送信につながるメール送信バッチ もともと、転職会議では一部のバッチ処理を除いてほとんどのバッチ処理が冪等に作られていました。しかし、残りの冪等ではないバッチ処理では、失敗するたびに毎回アドホックな対応をする必要があり運用性に課題を抱えていました 残っていたもので一番大きな問題を抱えていたのがメール送信バッチです。これは、以下の図のようなアーキテクチャで動いており、ワーカーにメールを送信するように指示するメッセージをSQSにキューイングする処理を行うものです。 このメール送信バッチのキューイング処理が途中で失敗した際に、雑に再実行してしまうと同一のユーザに重複してメールが送信されてしまう事にな

                                                            転職会議から冪等でないバッチ処理を根絶した話 - LIVESENSE ENGINEER BLOG
                                                          • Railsで大量データを扱うときに気をつけていること - LCL Engineers' Blog

                                                            バックエンドエンジニアの横塚です。 Railsで中規模以上のサービスを運用していると、大量のレコードやcsvをバッチで処理したい場面などが出てくると思います。 当たり前のように意識できている人も多いかと思いますが、今回はおさらいの意味も込めてバッチで大量データを扱うときに気をつけていることをまとめていこうと思います! 大量レコードに対して処理をするときはfind_eachやfind_in_batchesを使う DBからデータを取得してきて処理をしたい場合、eachで処理しようとすると対象データがすべてメモリに展開されてしまいますが、find_eachは1行ずつメモリに展開するため、レコード数を気にせず処理をすることができます。 User.each do |user| # なんか処理 end ↓ User.find_each do |user| # なんか処理 end また、find_in_

                                                              Railsで大量データを扱うときに気をつけていること - LCL Engineers' Blog
                                                            • バッチ処理と冪等性 / 20191218_merpay_techtalk

                                                              B2C、B2B プロダクトマネジメントの違い(および思考の罠) / B2C, B2B PM and reduction fallacy

                                                                バッチ処理と冪等性 / 20191218_merpay_techtalk
                                                              • バッチコマンドをテストしやすいようにリファクタリングする | メルカリエンジニアリング

                                                                Merpay Advent Calendar 2019 の8日目は、メルペイ backend payment platform チーム の @knsh14 がお送りします。 はじめに 私はメルペイでお客様の残高を管理しているマイクロサービス(以下Balance Service)の開発を担当しています。 Balance Serviceは次のような定常的に動かしているバッチがあります。 有効期限があるポイントの失効処理 会計データの突合 毎日知りたいデータのレポート Balance Serviceではメルペイリリースに向けて限られたスケジュールの中で開発を進めていました。 サービスとしての実装を優先して開発をしていたため、まずはテストのカバレッジを挙げて動作を担保する方針をとっていました。 結果としてリリースから今まで大きな事故もなく運用できています。 ですが、1日目の記事にもあるように7月か

                                                                  バッチコマンドをテストしやすいようにリファクタリングする | メルカリエンジニアリング
                                                                • /bin/shに慣れた人に贈るバッチファイルの書き方

                                                                  今日、Windowsでもバッチファイルが過去の遺物である事は間違いないですが… ●どこでも必ず使えるスクリプトはバッチファイル・VBScript・JScript・PowerShell しかない ●VBScript、JScript 、PowerShell はコマンドプロンプトからではインタプリタ名の指定を必要とする ●さらに PowerShell ではスクリプトの実行許可設定が必要になり、それがないとセキュリティーエラーになる など「どの環境でも間違いなく、そして手軽に動く」という要件を求めると、バッチファイルかバイナリの実行ファイルにせざるを得ないケースがまだ多いです。幸い、OSがNT系列になってからバッチファイルもかなり高機能になりました。なんとか頑張れば /bin/sh ほどではありませんが、必要なことができそうです。 本書では、これまで自分が学んできたバッチファイル実装のノウハウをニ

                                                                    /bin/shに慣れた人に贈るバッチファイルの書き方
                                                                  • バッチ処理実装時に考慮すべき事項 | メルカリエンジニアリング

                                                                    はじめに メルペイバックエンドエンジニアの @r_yamaoka です。この記事は、Merpay Tech Openness Month 2022 の16日目の記事です。 私がつい最近まで所属していた加盟店管理業務を担うマイクロサービス群(以下、加盟店管理システム)では様々なバッチが稼働しています。本記事ではそれらの実装において過去に発生したトラブルやヒヤリハットから得た知見を共有したいと思います。 背景 本題に入る前に加盟店管理システムでどのような箇所にバッチ処理が採用されているかについて少し解説します。バッチ処理を採用するか否かの観点としては大きく下記2点があります。 機能要件上バッチ処理を採用しなければならない 非機能要件の都合で同期処理を採用できない 前者の例としては「配送業者との伝票情報連携」や「行政システムとの連携処理」というものがあり、これは連携先である配送業者や行政の業務の

                                                                      バッチ処理実装時に考慮すべき事項 | メルカリエンジニアリング
                                                                    • Macでファイル名を一括変更できるRenamerはShupapan難民を救う!

                                                                      困っていた一つが、リネーマー。ある条件に従って、ファイルやフォルダの名前をバッチで一括変更できるユーティリティーです。今まではShupapanにお世話になってきましたが、開発者さんの更新の予定はないとアナウンスされています。今まで本当にありがとうございました! macOS 10.14以下のユーザーには、Shupapanは引き続きオススメ! Sunskysoft – Shupapan http://sunsky3s.s41.xrea.com/shupapan/ ファイルやフォルダ名の変更:Renamer Renamer リネームは、Terminalのコマンドでも処理できます。ただ、結果を目視で確認しながら処理したり、定型処理の設定を残しておきたいので、あれこれ探しては試していました。今のところ、今回紹介するRenamerとTerminalコマンドの組み合わせが、最適解だと思います。 Rena

                                                                        Macでファイル名を一括変更できるRenamerはShupapan難民を救う!
                                                                      • AWS Batchの使い所 - Qiita

                                                                        この記事は、ゆめみ Advent Calendar 2020の10日目の記事です。 AWS Batchを調べたので、そのことを書いてみます。 AWS Batch is 何 バッチコンピューティングのための環境をフルマネージドで提供 ・ AWS Batchがインスタンスの起動や停止をおこなうため、スケジューラや計算ノードなどの管理が不要 ・ ジョブはDockerコンテナイメージを元をに作成し、自動でスケールするコンピューティング環境で実行する ・ コンピューティング環境ではインスタンスタイプやvCPU数、スポットインスタンス利用有無などを任意に指定可能 ・ 100万vCPUクラスの大規模な計算にも対応 https://www2.slideshare.net/AmazonWebServicesJapan/20190911-aws-black-belt-online-seminar-aws-ba

                                                                          AWS Batchの使い所 - Qiita
                                                                        • バッチ設計時の基本的な要点 - Qiita

                                                                          バッチ処理のデータストア バッチ処理では大量データを扱うことが多いため、まずはそのデータを扱うデータストアを確認する必要があります。バッチ処理の入力データはファイルなのかRDBなのか、バッチ処理した結果をファイル出力するのかRDBに出力するのか等です。このように目的や用途に応じてファイルシステムに保存するのかRDBに保存するのかを検討します。また、ファイルの場合はTSVなのかCSVなのかXMLなのか等のファイル形式も検討します。 ジョブと順序制御 業務的に意味のある1つのバッチ処理を、ジョブと言います。通常、バッチ処理は多くのジョブで構成されているため、以下を検討する必要があります。 何をジョブとするのか 各ジョブの実行順序は問題ないか(その実行順序でデータの不整合は発生しないか) エンハンス開発等の場合、既存ジョブと実行順序は問題ないか オンライン処理とのデータの排他制御(これに関しては

                                                                            バッチ設計時の基本的な要点 - Qiita
                                                                          • データパイプラインバッチ設計で私が考えること

                                                                            © 2024 DATUM STUDIO Co. Ltd. データパイプラインの処理⽅法 データ処理にはバッチ処理とストリーミング処理の⼆つがある 源泉システム ストリーミング DWH Data Lake バッチ ü s3などにファイルを置いてもらう/ingestツールを使う ü 源泉システムの断⾯を保持するため扱いやすい ü Kafkaなどのメッセージングキューから連携 ü データの到着順が⼊れ替わることがあるので、ログ系のデータ向き ü バッチでのLoadが間に合わない場合にも採⽤される バッチ バッチ ストリーミング ü ⼀括ですべてのデータを処理 ü マシンパワーの強い近年のDWH製品と相性が良い ü viewやlambda viewによる実装 ü 分析に即時性が求められる場合に採⽤ される ü 複雑な処理設計が必要になる (個⼈的にはなるべく避けたい) (同左) ① ② ※ほんとは

                                                                              データパイプラインバッチ設計で私が考えること
                                                                            • Golangでのバッチ処理 個人的ベストプラクティス - blog.potproject.net

                                                                              Golangでのバッチ処理 個人的プラクティス Go言語でバッチを書く機会があった為、そこで個人的に行なった・意識した事をまあ振り返り形式が描いていく記事です。 割と書いてることは堅いかなと思います。そんなに新しいことを書いている感じもないです。 これを使えば多分間違いないだろうという定番ライブラリの紹介みたいな記事です。 CLIインターフェイス / フレームワーク cliを自分で実装するとなると割と大変だったりします。主に文法の解析。 なのでこれに関してはurfave/cliに任せておけばOKかと。 urfave/cli Star数10000超えてますし、特に不満もなく何でも使えるしカスタマイズもできるので、 今のところはこれが最良かと。 しっかりと標準出力/入力に依存せず、独立した構成になっているのでテストも容易です。 ほぼケースを網羅したテストのあるコードを書いてみる。言語設定で文章

                                                                                Golangでのバッチ処理 個人的ベストプラクティス - blog.potproject.net
                                                                              • バッチ処理を作る際に押さえておくこと - Qiita

                                                                                はじめに バッチ処理を作る際に検討項目が多く手が動かない。。。。 そんな状況にならないためにフォローできる記事になれば良いと思い書き込んでみました。 そもそもバッチ処理とは 簡単にいうと一定量のデータを集めて、一括で処理する方法のことです。 主にユーザアクションに起因しない処理です。 実行についても定期実行、手動実行など様々な用途で用いられます。 バッチ処理にするメリット 大量のデータを一括で処理できること 稼働する時間を調整できる。(業務システムが稼働していない夜間などに処理を行える) バッチ処理の構成 基本としてバッチ処理は以下の構成となっている。 入力して加工して出力する 例 入力 DBのデータ CSVファイル 加工 抽出する 削除する 集計する マージする 出力 DBに登録する CSVファイルに書き起こす メール送信 ファイル作成して転送 バッチを作る際の検討事項 構築する際に迷っ

                                                                                  バッチ処理を作る際に押さえておくこと - Qiita
                                                                                • Windowsのネットワーク切り替えバッチを作ってみた - Qiita

                                                                                  複数のマシンを管理していると、クライアントのIPアドレスやDNSサーバのアドレスをDHCPで配布すると思うが、必ずしもすべての事業所で対応できていないケースがある。 設置場所固定が前提のデスクトップPCであれば支障ないが、ノートPCを複数の拠点で使いまわす場合、接続するLANが変わるたびに設定(下図画面)を変えるのは些か煩雑であった。 そこで、IPv4のネットワーク設定を切り替えるバッチを作成した。 @echo off echo 1:東京本社 echo 2:名古屋ビジネスセンター echo 3:大阪事業所 echo. choice /C:123 /M:どのネットワークに接続しますか echo. set NAME=イーサネット if %ERRORLEVEL% equ 1 ( netsh interface ipv4 set address "%NAME%" dhcp netsh interf

                                                                                    Windowsのネットワーク切り替えバッチを作ってみた - Qiita

                                                                                  新着記事