タグ

ブックマーク / techblog.zozo.com (17)

  • ElasticsearchによるZOZOTOWNへのベクトル検索の導入検討とその課題 - ZOZO TECH BLOG

    こんにちは。検索基盤部の橘です。ZOZOTOWNでは、商品検索エンジンとしてElasticsearchを利用し、大規模なデータに対して高速な全文検索を実現しています。 Elasticsearchに関する取り組みは以下の記事をご覧ください。 techblog.zozo.com 検索基盤部では、ZOZOTOWNの検索結果の品質向上を目指し、新しい検索手法の導入を検討しています。記事ではベクトル検索と呼ばれる検索手法に関して得た知見を紹介します。 ※記事はElasticsearchバージョン8.9に関する内容となっています。 目次 目次 ベクトル検索とは ベクトル検索に期待すること Elasticsearchを使用したベクトル検索の導入 導入の簡略化 デプロイ可能な埋め込みモデル ベクトル検索のクエリ ハイブリッド検索とは Elasticsearchを用いたハイブリッド検索 RRF(Reci

    ElasticsearchによるZOZOTOWNへのベクトル検索の導入検討とその課題 - ZOZO TECH BLOG
  • 大公開!バッチアプリケーションの品質を高めるZOZOの『バッチ開発ガイドライン』 - ZOZO TECH BLOG

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

    大公開!バッチアプリケーションの品質を高めるZOZOの『バッチ開発ガイドライン』 - ZOZO TECH BLOG
  • GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG

    はじめに こんにちは。ブランドソリューション開発部FAANSバックエンドブロックの佐野です。普段はサーバーサイドエンジニアとして、FAANSのバックエンドシステムを開発しています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗で働くショップスタッフの販売サポートツールです。例えば、コーディネート投稿機能や成果確認機能などを備えています。投稿されたコーディネートはZOZOTOWNやWEAR、Yahoo!ショッピング、ブランド様のECサイトへの連携が可能です。成果確認機能では、投稿されたコーディネート経由のEC売上やコーディネート閲覧数などの成果を可視化しています。 記事では、成果データの集計処理におけるBigQueryのクエリ実行処理のユニットテストをGoで実装した取り組みと、その際の工夫についてご紹介します。 目次 はじめに 目次 成果データの集計処理とは 抱え

    GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG
  • BigQueryのストレージ料金プランを変更して、年間数千万円を節約する - ZOZO TECH BLOG

    こんにちは、最近気になるニュースはサザエの学名が数年前に初めて命名されたこと1な、MLデータ部データ基盤ブロックの塩崎です。BigQueryのストレージに関する新料金プランが先日発表されたので、その検証をしました。我々の環境では年間で数千万円という費用削減を達成できることが分かりましたので、BigQueryに多くのデータを蓄積している会社は是非お試しください。 ストレージ費用の悩み データ基盤を長期間運用していると、データ量の増加が問題になることがしばしばあります。特にユーザーの行動ログやスタースキーマにおけるファクト系テーブルなどはデータがどんどん蓄積されます。古いデータを削除することでデータ量の増加を緩和できますが、それでもサービスの成長に伴いデータ量は増加する傾向になります。 BigQueryはコンピューティングとストレージが高度に分離されているので、初期のAmazon Redshi

    BigQueryのストレージ料金プランを変更して、年間数千万円を節約する - ZOZO TECH BLOG
  • BigQueryでのデータ追記処理における冪等化の取り組み - ZOZO TECH BLOG

    こんにちは、MA基盤チームの田島です。私達のチームではMAIL、LINE、PUSH通知といったユーザへの配信をしています。その中でもマス・セグメント配信という一斉に行う配信では、配信対象者のセグメント抽出にBigQueryを利用しています。また、配信前に必要なデータをBigQueryに連携しデータマートの集計をしたり、配信後には配信実績の登録などの更新処理をしています。 そのような処理を定期的に行っているため、ネットワークの問題やサーバーの不調などにより処理が途中で失敗することがあります。そこで、リトライを容易にするため、すべての処理を冪等にしました。今回その中でも、BigQueryの追記処理に絞ってどのように冪等化したのかについて紹介します。 目次 目次 マス・セグメント配信基盤の紹介 課題 冪等化 BigQuery追記処理に関する冪等化の取り組み 冪等にならないケース INSERT 初

    BigQueryでのデータ追記処理における冪等化の取り組み - ZOZO TECH BLOG
  • OSS「Coppe」の公開 〜 BigQuery基盤のデータ監視ツールによるデータ品質担保 - ZOZO TECH BLOG

    はじめに こんにちは、データシステム部データ基盤ブロックの纐纈です。9月から22卒内定者として、チームにジョインしました。 記事では、弊社のデータ基盤チームが抱えていた課題と、その解決のために公開したOSSツール「Coppe」を紹介します。Coppeは、以下のような方にお勧めできるツールです。 BigQueryを使用したデータ基盤の監視に興味がある BigQueryの監視ツールとしてRedashを採用しているが、運用が面倒に感じている インフラの設定なしにBigQueryの監視を行えるツールが欲しい なお、OSSはMonotaRO Tech Blogの記事「SQLを使った監視でデータ基盤の品質を向上させる」で紹介されていた仕組みを参考にし、より柔軟に監視項目を設定できるように新規開発しています。 OSSとして公開しているため、記事と併せてご覧ください。 github.com 開発の経

    OSS「Coppe」の公開 〜 BigQuery基盤のデータ監視ツールによるデータ品質担保 - ZOZO TECH BLOG
  • BigQueryで時を遡って過去のテーブルを再構成する - ZOZO TECH BLOG

    はじめに こんにちは、データシステム部データ基盤ブロックSREの纐纈です。 記事では、過去に遡ってBigQueryのデータを参照する方法(以下、タイムトラベルと呼びます)をご紹介します。また、この機能はBigQueryが提供している、変更または削除されたデータにアクセスするタイムトラベルとは異なることをご了承ください。 開発背景 この機能は過去データを日次スナップショットより細かい粒度で見たい、また障害対応時に障害発生前などピンポイントで時間指定して参照したいという要望を受け、開発することになりました。 さらに、BigQueryからこの機能を作るのに役立ちそうなテーブル関数という機能がリリースされたのもきっかけとなりました。 cloud.google.com テーブル関数とは、事前にパラメータを使って定義したクエリをエイリアスのようにテーブルとして保存して、そのテーブルに対して関数を実行

    BigQueryで時を遡って過去のテーブルを再構成する - ZOZO TECH BLOG
  • Gatlingによる分散負荷試験を自動化するKubernetesオペレーターGatling Operatorの紹介 - ZOZO TECH BLOG

    こんにちは。SRE部の川崎(@yokawasa)、巣立(@tmrekk_)です。私たちは、ZOZOTOWNのサイト信頼性を高めるべく日々さまざまな施策に取り組んでおり、その中の1つに負荷試験やその効率化・自動化があります。記事では、私たちが負荷試験で抱えていた課題解決のために開発、公開したOSSツール、Gatling Operatorを紹介します。 github.com はじめに ZOZOTOWNは非常にピーク性のあるECシステムであることから、常にそのシステムが受けうる負荷の最大値を意識しております。想定しうる最大規模の負荷を受けてもユーザー体験を損なうことなくサービス継続できることをプロダクションリリースの必須条件としています。したがって、新規リリースやアップデート、大規模セールなどのシステム負荷に影響を与えうるイベント前など、比較的頻繁に負荷試験を実施しています。そして、社内でもっ

    Gatlingによる分散負荷試験を自動化するKubernetesオペレーターGatling Operatorの紹介 - ZOZO TECH BLOG
  • Istioによるサービスメッシュをどのようにプロダクションレディにするか - ZOZO TECH BLOG

    はじめに SRE部 ECプラットフォームSREチームの小林 (@akitok_) です。 ZOZOTOWNでは、マイクロサービス間通信におけるトラフィック制御のために、Istioによるサービスメッシュを導入しています。記事ではZOZOTOWNのマイクロサービスプラットフォーム基盤(以下、プラットフォーム基盤)において、Istioをいかにプロダクションレディな状態で番に投入していったか、その取り組みを紹介します。 なお、Istioによるサービスメッシュを導入した背景については、以下の記事で紹介しています。 techblog.zozo.com はじめに What is Istio? Istioをプロダクションレディにするまでに直面した3つの課題 どのようにリソース消費量を見積もるか Data Planeサイジング Envoyプロキシのチューニング 負荷試験 Istioベンチマーク試験 サー

    Istioによるサービスメッシュをどのようにプロダクションレディにするか - ZOZO TECH BLOG
  • Cloud Runで新規サービスを構築・運用するためにSREとして取り組んだこと - ZOZO TECH BLOG

    はじめに こんにちは。メディアプラットフォーム部 WEAR部 WEAR-SREの笹沢(@sasamuku)です。 ZOZOが新しく展開する「FAANS」というショップスタッフ向けアプリをクローズドβ版としてテスト運用しています。アプリは、WEARと連携したコーディネート投稿や、その成果を可視化する機能などをショップスタッフの皆さんに提供するtoBのソリューションです。現在、正式リリースに向け開発を進めています。 そして、FAANSのAPIはCloud Runと呼ばれるサーバレスなコンテナ実行基盤で稼働しています。記事では、FAANSの実行基盤としてCloud Runを選定した理由や、構築・運用するためにSREとして取り組んだことをご紹介します。 Cloud Runを選んだ理由 まず、クラウドサービスはGCPを選択しています。FAANSでは開発速度の向上と運用負荷の軽減のため、認証やメ

    Cloud Runで新規サービスを構築・運用するためにSREとして取り組んだこと - ZOZO TECH BLOG
  • ZOZOTOWNを支えるリアルタイムデータ連携基盤 - ZOZO TECH BLOG

    こんにちは、SRE部MA基盤チームの谷口(case-k)です。私達のチームでは、データ連携基盤の開発・運用をしています。 データ基盤には大きく分けて2種類あり、日次でデータ連携してるものとリアルタイムにデータ連携しているものがあります。記事ではリアルタイムデータ連携基盤についてご紹介します。 既存のデータ連携基盤の紹介 リアルタイムデータ連携基盤の紹介 なぜ必要なのか 活用事例の紹介 データ連携の仕組みと課題 リプレイス後のリアルタイムデータ連携基盤 SQL Serverの差分データの取り方を検討 アーキテクチャ概要と処理の流れ Fluentdのプラグインを使った差分データの取得 Dataflowでメッセージの重複を排除 Dataflowで動的にBigQueryの各テーブルに出力 Pub/Subのメッセージ管理 イベントログ収集基盤 個人情報の取り扱い ビルド・デプロイ戦略 監視 データ

    ZOZOTOWNを支えるリアルタイムデータ連携基盤 - ZOZO TECH BLOG
    ktykogm
    ktykogm 2021/02/23
  • 【ZOZOTOWNマイクロサービス化】API Gatewayを自社開発したノウハウ大公開! - ZOZO TECH BLOG

    はじめに こんにちは。ECプラットフォーム部のAPI基盤チームに所属している籏野 @gold_kou と申します。普段は、GoAPI GatewayやID基盤(認証マイクロサービス)の開発をしています。 ZOZOテクノロジーズでは、2020年11月5日にZOZO Technologies Meetup〜ZOZOTOWNシステムリプレイスの裏側〜を開催しました。その中で発表されたAPI Gatewayによるマイクロサービスへのアクセス制御に関して、当日話せなかった内容も含めて、API Gatewayについてこの記事で網羅的にまとめました。 API Gatewayやマイクロサービスに興味ある方、「API Gateway」という言葉は知っているけど中身はよく分からないという方向けの記事なので、読んでいただけると幸いです。 はじめに ZOZOTOWNのリプレイス マイクロサービス化の目的 ストラ

    【ZOZOTOWNマイクロサービス化】API Gatewayを自社開発したノウハウ大公開! - ZOZO TECH BLOG
  • RubyKaigi 2019参加レポート〜sonots登壇セッション & エンジニア8名による厳選セッション - ZOZO TECH BLOG

    こんにちは! 2019/4/18 - 20に福岡国際会議場で開催されたRubyKaigi 2019にZOZOテクノロジーズもRubyスポンサーとして協賛しました。 弊社からも8名のエンジニア(@takanamito, @rllllho, @katsuyan121, @TrsNium, @AmatsukiKu, @takeWakaMaru666, Takehiro Shiozaki ,@sh_ngsw)が参加し、SREスペシャリストである瀬尾(@sonots)が登壇しました! 今年のRubyKaigiは、60を超える講演があり、参加者も1000名を超える大規模なカンファレンスでした。 この記事では、多くの講演の中でも特に気になった講演を弊社から参加したメンバーがそれぞれ報告します。 またsonotsの登壇内容と、スポンサーとしての活動について報告します。 RubyKaigi 2019登壇 R

    RubyKaigi 2019参加レポート〜sonots登壇セッション & エンジニア8名による厳選セッション - ZOZO TECH BLOG
    ktykogm
    ktykogm 2019/04/26
  • Google Cloud Next '19で発表された新機能を紹介します! (Cloud Run, BigQuery Storage API, Cloud Data Fusion) - ZOZO TECH BLOG

    こんにちは! App EngineのスタンダードランタイムにRubyが追加されて喜んでいるバックエンドエンジニアのりほやん(高木)と、オレンジ色のチンアナゴは実はニシキアナゴという別種だったことに驚きを禁じ得ない塩ちゃん(塩崎)です。 4/9, 10, 11の期間で開催されたGoogle Cloud Next '19にZOZOテクノロジーズから高木と塩崎が参加しました! GCPの新しい機能や活用についての事例が多く紹介されました。 その中でも2人がカンファレンスで気になった技術を紹介します。 Cloud Run Cloud Runとは Cloud Runの特徴 実際に使ってみる 1. アプリケーションの準備 2. コンテナイメージをビルドする 3. Cloud Runにサービスを作成する App Engineとの違い サービスの比較 各サービスの概要 App Engine Cloud Ru

    Google Cloud Next '19で発表された新機能を紹介します! (Cloud Run, BigQuery Storage API, Cloud Data Fusion) - ZOZO TECH BLOG
    ktykogm
    ktykogm 2019/04/22
  • Google BigQueryの新機能 Standard SQLまとめ - ZOZO TECH BLOG

    こんにちは、VASILYバックエンドエンジニアの塩崎です。 VASILYでは様々なログデータの分析にBigQueryを使用しています。 インデックスについて何も考えなくても良いのが特に便利です。 さて、そんなBigQueryですが、数か月前にStandard SQLという新しい仕様のSQLがサポートされました。 BigQuery 1.11, now with Standard SQL, IAM, and partitioned tables! VASILYでも徐々にStandard SQLに移行をしているので、使い勝手や従来のSQLからの移行方法についてまとめておきます。 Standard SQLとは SQL:2011に準拠しつつ、配列や構造体等の構造化データを扱えるように拡張されたSQLです。 Standard SQLの登場によって、以前からあったSQLはLegacy SQLと呼ばれるよ

    Google BigQueryの新機能 Standard SQLまとめ - ZOZO TECH BLOG
    ktykogm
    ktykogm 2019/02/22
  • 開発効率を上げる!Swaggerの記法まとめ - ZOZO TECH BLOG

    この記事ではOpenAPI Specification v2に関する内容を取り上げています。しかし、2023年9月現在での最新の仕様はOpenAPI Specification v3となっています。最新の仕様に基づいて実装や学習を行いたい方は、公式ドキュメントやそれに関連する資料をご参照ください。 こんにちは! バックエンドエンジニアのりほやんです。 以前、テックブログでAPIモックと仕様書を作成することができるSwaggerについてご紹介しました。 Swaggerそのものについて知りたい場合やSwaggerを実際に導入したい場合は、こちらの記事がとても参考になります。 techblog.zozo.com 記事では、SwaggerのAPI定義を行うSwagger YAMLの記法についてまとめてみました。 使い初めはとっつきにくいSwaggerですが、この記事がSwaggerを使う方の参考

    開発効率を上げる!Swaggerの記法まとめ - ZOZO TECH BLOG
    ktykogm
    ktykogm 2018/12/18
  • Embulkを利用したデータ転送基盤の構築 - ZOZO TECH BLOG

    こんにちは。バックエンドエンジニアインターンの田島です。 VASILYでは分析にBigQueryを使用しており、MySQLのデータを毎日BigQueryに同期しています。この同期処理を行うシステムは、約2年前にRubyで書かれたもので、プロダクトの成長に伴うデータ量の増加に耐えることができなくなり始めていました。そのため、同期処理を行うシステムを一から作り直しましたので、その詳細についてご紹介します。 弊社DEVELOPERS BLOGでは以前、『インターン生がデータ転送基盤を一から設計する、VASILYバックエンドインターンの紹介』としてシステムの概要・開発の流れをご紹介しましたが、今回はシステムの詳細についてご紹介します。 (photoクレジット *1) データ同期ツールの紹介 新たなデータ同期システムとして、次のように利用する社内ツールを作成しました。 以下のような環境変数を設定し、

    Embulkを利用したデータ転送基盤の構築 - ZOZO TECH BLOG
    ktykogm
    ktykogm 2018/12/18
  • 1