タグ

streamingに関するsh19910711のブックマーク (150)

  • 順序性の担保とスループットはトレードオフだという話

    この記事について AWS SQSからメッセージを受けとって処理するLambdaを書いているときに、 標準キューだから順序保証されてないな、じゃあ順序バラバラできても捌けるように処理を書かないと! → ... → あれ???意外とこれ難しくない??? と思った経験、皆さんにもあるのではないでしょうか。 この記事では、筆者が上記のような壁にぶつかったときに「順序を保つってなんでそんなに難しいんだろう?」「保てないならどうやってそれに耐えうるようにすればいいんだろう?」と色々考察した結果を書いていきたいと思います。 使用する環境・バージョン 2024/6/22時点で提供されている機能に基づき考察 読者に要求する前提知識 AWSのSQS, SNS, Kinesis Data Streamがどういうサービスなのかは既知という前提のもとで書きました 順序セマンティクスとは 順序セマンティクスとは「イベ

    順序性の担保とスループットはトレードオフだという話
    sh19910711
    sh19910711 2024/06/27
    "ほぼランダムにばらつくようなことはなく、なるべくA→Bになるようにベストエフォートでの挙動が提供されていることが多い / 「順序を担保できるのは同じ場所にあるもののみ」という性質がある"
  • Clojure で Kafka Streams アプリケーションを書く - Qiita


     Kafka Advent Calendar 2021 11  Kafka Streams Clojure Jackdaw Kafka Streams  Clojure 使  Kafka Quick start 
    Clojure で Kafka Streams アプリケーションを書く - Qiita
    sh19910711
    sh19910711 2024/06/19
    "Jackdaw: Kafka Streams の Clojure ラッパーライブラリ / Streams DSL が clojure 関数にラップされており、それらは builder か kstreams を第一引数に取るため、スレッディングマクロで簡潔ににトポロジーを書き下せます" 2021
  • DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。 - Qiita


     GCPDataFlow使CSV() Cerberus Cerberus Python CerberusPython 2.73.8PyPyPyPy3 (https://docs.
    DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。 - Qiita
    sh19910711
    sh19910711 2024/06/16
    "Cerberus: Pythonのデータ検証用のライブラリ + シンプルで軽量なデータ検証機能をすぐに提供し、簡単に拡張できるように設計 / regixだったり桁数だったりかなり柔軟にチェックができる" 2022
  • 読書メモ: Stream Processing with Apache Flink

    sh19910711
    sh19910711 2024/06/13
    "1 から 3 章は Flink に限らないストリーミング処理一般の概念や設計思想 / 第3世代 (2015 年頃): この時点で Lambda Architecture は不要になり Stream Processor に 1 本化 + Flink は第 3 世代のプロダクト"
  • API Gateway から Amazon Data Firehose へ Lambda を使わずにデータを流す - every Tech Blog


     every Tech Blog Advent Calendar 2024() 11   @kosukeohmura   retail HUB  API   API   API Gateway  API Amazon Data Firehose  S3   API  Amazon Data Firehose  PutRecord
    API Gateway から Amazon Data Firehose へ Lambda を使わずにデータを流す - every Tech Blog
    sh19910711
    sh19910711 2024/06/13
    "クライアントからのイベントログを API Gateway で作成した API で受け + イベントログと合わせて保存したいメタデータを付加 / API Gateway: マッピングテンプレートを利用することでリクエストボディの変換ができる"
  • Snowpipe Streaming X Kafkaでデータ取り込みやってみた

    23年7月のアップデートでSnowpipe Streaming + Kafka Connectorがサポートされたので遅くなりましたが、どんな感じなのか試してみました。 Snowpipe Streaming + Kafka Connectorのポイント 公式ドキュメントより抜粋 KafkaからのデータのロードチェーンでSnowpipeを Snowpipe Streaming に置き換えることができます。 指定されたフラッシュバッファーのしきい値(時間、メモリ、またはメッセージ数)に達すると、仮のステージングされたファイルにデータを書き込むSnowpipeとは異なり、コネクタはSnowpipe Streaming API (「API」)を呼び出して、データの行をSnowflakeテーブルから書き込みます。 このアーキテクチャにより、ロード遅延が短縮され、同様の量のデータをロードするためのコス

    Snowpipe Streaming X Kafkaでデータ取り込みやってみた
    sh19910711
    sh19910711 2024/06/08
    "7月のアップデートでSnowpipe Streaming + Kafka Connectorがサポート / コネクタには、Snowflake Ingest SDK が含まれており、Apache Kafkaトピックからターゲットテーブルに直接行をストリーミング + スキーマ検出および進化をサポート" 2023
  • Druidとflinkを使った動画広告のリアムタイム集計基盤

    [BA11] Office 365/Dynamics 365 連携だけじゃない! 業務に使うマルチデバイスアプリ作成に向けた PowerApps/Flow...

    Druidとflinkを使った動画広告のリアムタイム集計基盤
    sh19910711
    sh19910711 2024/05/28
    "Druid: イベントデータに対するOLAP + リアルタイムデータとヒストリカルなデータをSub-secondで処理できるよう設計されたデータストア / Superset: もともとはPanoramixという名前だった" 2017
  • Hadoop Streaming の Mapper と Reducer を初めて書いて感じたこと:お題目うぉっち


    20100202 Hadoop Streaming  Mapper  Reducer  O'reilly  Hadoop Hadoop DB MapperReducer 6MapReduce mapperreducer   StreamingMapper, Reducer Key, Value  Java
    sh19910711
    sh19910711 2024/05/26
    "よくある MapReduce の説明だと、「Mapper、Reducerには、各行の Key と Value が渡される」的なことが書かれ / 一方、Streaming の場合は InputFormat が Key と Value を Value として一緒くたにして STDIN経由で渡してくる" 2010
  • Kafka Streams で状態を持つアプリケーションを作る - Qiita

    この記事はKafka Advent Calendar 2021の3日目の記事です。 Kafka Streams でステートフルなアプリケーションを開発する際、Kafka 外のデータストアを使ってしまうと Kafka Streams が持つフォールトトレランスや処理の保証などの機能を活かし切れず、競合状態やリトライなど注意点が多く発生します。Kafka 自体をデータストアとすることで、Kafka Streams の利点を活かせるアプリケーションのパターンを紹介します。 Kafka Streams とは Kafka のクライアントとコンシューマを利用し、Kafka トピック上を流れるデータに対するトポロジー(結合、変換など)を定義し、ストリーム処理が出来るライブラリです。 あるトピックにメッセージが配信されたらそのメッセージを処理し、結果を別のトピックに配信する、というようなアプリケーションを

    Kafka Streams で状態を持つアプリケーションを作る - Qiita
    sh19910711
    sh19910711 2024/05/25
    "KTable: Kafka Streams で状態を扱う一番基本的な方法 + トポロジー内で KTable からエンティティのスナップショットを取得 + 新状態を KTable のトピックに再び配信することでそのエンティティを更新" 2021
  • ニアリアルタイムで投稿レコメンドをユーザーに届ける - Commune Engineer Blog


    ML@asteriam_fp   稿稿   稿 稿 
    ニアリアルタイムで投稿レコメンドをユーザーに届ける - Commune Engineer Blog
    sh19910711
    sh19910711 2024/05/19
    "Feature Store を導入しユーザーへのレコメンド提供の速度が上がることで,どれほどのビジネスインパクトを生み出せるか / とても便利である反面,これらを GCP のマネージドサービスを使って構築すると非常に高価" 2023
  • Debeziumで変更データキャプチャを学ぼう #jjug_ccc

    JJUG CCC 2021 Fallの 「15:00 ~ 15:50 Debeziumで変更データキャプチャを学ぼう」の資料です

    Debeziumで変更データキャプチャを学ぼう #jjug_ccc
    sh19910711
    sh19910711 2024/05/14
    "Debezium: RedHatがサポート + データベースの行レベルの変更をキャプチャする分散サービスのセット / Kafkaが嫌ならEmbedded Engineという手もある + お好みのメッセージブローカーに送信することも出来る" 2021
  • ElasticsearchとNeo4jをKafkaで連携する - Qiita


     Elasticsearch/Neo4j  DB Elasticsearch Neo4j 調 Neo4j Elasticsearch    Neo4j  Elasticsearch  Elasticsearch
    ElasticsearchとNeo4jをKafkaで連携する - Qiita
    sh19910711
    sh19910711 2024/05/09
    "Neo4j でもデータのプロパティを基準にクエリをかけたい + Elasticsearch に入っているデータ同士を紐づけたい / Neo4j Connector は Sink と Source のどちらもサポート" 2022
  • S3のコスト削減に成功した話 〜カギはバッチウィンドウ〜|ハンズラボ株式会社

    こんにちは!POSグループのhktです。 こちらの記事は、「S3のコスト削減に失敗した話」の後編になります。 もしまだ前編をご覧になっていない方は、ぜひ読んでみてください。 さて、前編では、S3のコストを調査したところ、最も費用がかかっているのがPutObjectであることが判明しました。 今回は、S3のコストを削減するために、PutObjectの実行回数を減らすことはできないか検討しました。 PutObjectの実行回数を減らしたい POSグループが運用するAWSアカウントでは、ログデータをS3に保存するために、Kinesis Data StreamsをトリガーとするLambda関数が稼働しています。 具体的には、以下のような構成になっています。HandsPOSアプリからKinesis Data Streamsにログデータが送信され、Kinesis Data StreamsからLambd

    S3のコスト削減に成功した話 〜カギはバッチウィンドウ〜|ハンズラボ株式会社
    sh19910711
    sh19910711 2024/05/04
    "S3のコストを調査したところ、最も費用がかかっているのがPutObjectで / ログデータをS3に保存するために、Kinesis Data StreamsをトリガーとするLambda関数が稼働 / バッチウィンドウ: 最大300秒間レコードをバッファリング" 2023
  • Akka Streams についての基礎概念 - Qiita


    Akka Streams 2.4experimental3HackerDaysAkka Streams  AkkaStreamAkkaStream Akka Streams   Internetw Stream Akka使ActorActorActor
    Akka Streams についての基礎概念 - Qiita
    sh19910711
    sh19910711 2024/05/02
    "Akka Streams: バージョン2.4以降、APIを一新 + experimentalでなくなった / SourceとFlowを繋げば、新しいSourceになる、FlowとSinkを繋げば、新しいSinkになる、すべて繋げば、 RunnableFlow になる" 2016
  • Apache Beam Python SDK でパイプラインのテストコードを書く - public note

    sh19910711
    sh19910711 2024/05/01
    "Apache Beam: SDK には testing パッケージが用意 + パイプラインに対するテストコードを書けます / Beam パイプラインは、一般のコードと比較すると読んだだけでは挙動をイメージしにくい印象" 2023
  • Spark 2.0 on EMR で Structured Streaming をやってみた


    Distributed computing (Apache Hadoop, Spark, ) Advent Calendar 2016  12/19 Spark 2.0 on EMR Spark Streaming  Structured Streaming    Spark 2.0  Structured Streaming  Structured Streaming Spark SQL   Spark Streaming  RDD  DStream  Spark Streaming Structured Streaming  Spark SQL
    Spark 2.0 on EMR で Structured Streaming をやってみた
    sh19910711
    sh19910711 2024/04/29
    "Structured Streaming: Spark SQL エンジンで実現されたストリーム処理の仕組み + バッチジョブと同じ書き方で Streaming 処理を実現 / 従来型の Spark Streaming は RDD を DStream とよばれる Spark Streaming 特有のモデル" 2016
  • dbtからSnowflake Dynamic Tablesを作成してリアルタイムデータパイプラインを構築してみる


      delyharry(@gappy50)  SnowflakeDynamic TablesPuPr dbt1.6Materialized ViewSnowflakeDynamic Table Dynamic Tables  dbt build 
    dbtからSnowflake Dynamic Tablesを作成してリアルタイムデータパイプラインを構築してみる
    sh19910711
    sh19910711 2024/04/23
    "宣言的なデータパイプラインの全貌徐々に見え隠れ + これに追従する形でdbt1.6でもMaterialized View(SnowflakeではDynamic Table)をサポート / ニアリアルタイムなストリーミングパイプラインをクエリを書くだけで実現" 2023
  • リアルタイムなイベントにFlafkaを使ってKafkaとデータのやり取りを行う - Qiita

    Apache FlumeやApache Kafkaはリアルタイムなイベント処理のバックエンドとして広く利用されています。これら2つのシステムは似ている部分もありますが、ユースケースによりどちらか一方、あるいは量を組み合わせて使う場合もあります。 FlumeとKafkaの違いは次のブログも参考になります。 https://www.linkedin.com/pulse/flume-kafka-real-time-event-processing-lan-jiang Apache Kafka Apache Kafkaはpub-sub、出版-購読型のシステムで、多数のシステムとの連携に広く利用されています。 [画像はhttps://kafka.apache.org/より引用] しかし、Kafkaを使う場合、一般的にプロデューサやコンシューマのためのコードを記述する必要があります。 Producer

    リアルタイムなイベントにFlafkaを使ってKafkaとデータのやり取りを行う - Qiita
    sh19910711
    sh19910711 2024/04/22
    "Apache Flume: リアルタイムなイベント処理のバックエンドとして広く利用 / Flafka: コードを記述することなくKafkaと連携 + KafkaをFlumeのソース(入力)やシンク(出力)、またはチャンネル(バッファ)として利用" 2016
  • 【Iceberg 1.5新機能】viewの紹介 - 共通メタデータ形式とバージョン管理が実現する新たな可能性 - 流沙河鎮

    はじめに Iceberg view概要 一般的なクエリエンジンにおけるviewの役割 Iceberg viewを使ってみる Iceberg viewのコンセプト メタデータ形式の共有 viewのバージョン管理 Iceberg viewの構成要素と仕組み View Metadata versionsフィールド representationsフィールド 「create_changelog_view」プロシージャによるIcebergのCDC create_changelog_view create_changelog_viewの使い方 引数 アウトプット create_changelog_viewの実行例 Tips Carry-over Rows Pre/Post Update Images ユースケースのアイデア おわりに Appendix: Viewサポートに関連するPR はじめに 2024

    【Iceberg 1.5新機能】viewの紹介 - 共通メタデータ形式とバージョン管理が実現する新たな可能性 - 流沙河鎮
    sh19910711
    sh19910711 2024/04/05
    "Iceberg 1.5: viewの仕様を定めるIceberg View Specが定義され、いくつかのCatalog実装がviewの操作をサポート / create_changelog_view: viewを活かしたSparkのStored Prodecure + 行レベルの変更をキャプチャできるため、CDCを実装する上で役に立つ"
  • Snowflake Dynamic Tables による大規模ニアリアルタイム処理に向けた基礎検証 | TECH | NRI Digital


    1 Snowflake RAWETL100TBPB1ETLPB 5 SnowflakeETLDynamic Tables
    Snowflake Dynamic Tables による大規模ニアリアルタイム処理に向けた基礎検証 | TECH | NRI Digital
    sh19910711
    sh19910711 2024/04/04
    "Snowflake Dynamic Tables: ソースデータに更新がかかったときに、その変更を変換後テーブルにSnowflake側で自動で反映してくれる / サイズXSの場合、1.2GB/分あたりが、更新遅延5分以内を満たせるかどうかのボーダー" 2023