タグ

ブックマーク / techlife.cookpad.com (8)

  • データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ

    こんにちは。クックパッドエンジニアをしている @morishin です。Bdash Server というデータ分析 SQL を共有するアプリケーションを作って社内で使い始めたのでその紹介をします。 クックパッドのサービス開発は「仮説を立てる」→「作ってリリース」→「効果検証」の繰り返しで進んでいます。ここで言う効果検証というのは作ったサービスが狙い通りの使われ方をし、ユーザーに価値を提供できているかどうかの確認のことです。その手段は複数あり、実際に使っていただいたユーザーさんにインタビューをさせていただく場合もあればアプリケーションから送信されたアクセスログ等を分析することで評価する場合もあります。この記事では後者の定量分析を効率化するためのツールを作った話をします。 アプリの概要 まずはアプリの機能を紹介します。Bdash Server は、Bdash という同僚 (@hokaccha

    データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ
    tgk
    tgk 2021/06/12
  • 人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ

    技術クックパッドサービス基盤グループの id:koba789 です。 昨年まではデータ基盤グループというところで 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤 を作ったりしていました。 今年はちょっとチームを移動しまして、検索システムをいじっていました。今回はそのお話です。 なお、クックパッドには様々な検索システムがありますが、この記事では説明を簡単にするためにレシピの検索のみに焦点をあてています。 クックパッドの検索システムにあった課題 クックパッドにはレシピを検索できる機能があります。 プレミアム会員限定の人気順検索もこの機能の一部です。 しかし、この重要な機能を支える検索システムにはいくつもの課題がありました。 Solr が古すぎる クックパッドでは、レシピ検索を含む多くの検索機能にSolrを用いています。 今年の始めに私がこの課題に取り組み始めた時点では、その Sol

    人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
    tgk
    tgk 2021/01/04
    「ダウンロードしたセグメントファイルはtmpfsに書いています」「ブロックストレージは完全に無駄であることに気が付きます。 結局ページキャッシュに乗せなければならないならはじめからtmpfsに書くべきです」
  • データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ

    技術部データ基盤グループの青木です。 ここ1、2年はなぜか成り行きでBFFをでっちあげたり、 成り行きでiOSアプリリニューアルのPMをしたりしていたので あまりデータ基盤の仕事をしていなかったのですが、 今年は久しぶりに業に戻れたのでその話をします。 突然の1人チーム、そして0人へ…… 今年のデータ基盤チームは消滅の危機から始まりました。 間違いなく去年末は5人のチームだったと思うのですが、 メンバーがイギリスへグローバルのデータ基盤チームを作りに行ったり、 山へ検索システムを直しに行ったり、川へレシピ事業の分析業務をやりに行ったり、 海へ広告のエンジニアリングをしに行ったりするのをホイホイと気前よく全部聞いていたら、 なんと4月から1人だけのチームになってしまいました。 事はそれで終わりません。 恐ろしいことに10月にはわたし自身も育休に入ることになったので、 10月はデータ基盤が0

    データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ
    tgk
    tgk 2021/01/03
    クックパッドのRedshiftの構成>「ds2.8xlarge×8, 128 slice」「2016年から同じサイズのクラスターを使い続けています」「これまでは常時カツカツで、 80%を越えるたびに過去のデータを消しては凌いでいた」
  • ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す - クックパッド開発者ブログ

    こんにちは、トレンド調査ラボの井上寛之(@inohiro)です。 普段は、クックパッドの検索ログを基にした法人向けデータサービス「たべみる」の開発や、 広告事業周辺のデータ分析などを担当しています。 Amazon Redshiftなどのデータベースに蓄積されたログなどの大量のデータに対して、 日次や週次などの単位でバッチ処理を行っている方は多くいらっしゃると思います。 ログなどを扱うバッチ処理では、処理対象が膨大であるとアプリケーションが使うメモリが増大し、 枯渇してしまう恐れもあるため、データの扱いに気をつける必要があります。 データベース内で完結するバッチ処理ならばそこまで気にする必要は無いかもしれませんが、 外部のプログラムからデータを読み出して処理する場合は特に注意が必要です。 そこで考えられる一つの工夫として、処理対象を分割して、繰り返して処理を行う方法が挙げられます。 一般的な

    ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す - クックパッド開発者ブログ
    tgk
    tgk 2020/10/12
    DWHでカーソル使っている例
  • クックパッドのデータ活用基盤 - クックパッド開発者ブログ

    インフラ部 & 技術部の青木峰郎です。 クックパッドでは全社的にAmazon Redshiftを中心としたデータ活用基盤を構築しています。 今日はその全体像についてお話ししたいと思います。 データ活用基盤の全体像 まず、以下にクックパッドのデータ活用基盤の全体像を示します。 大きく分けると入力が2系統、内部処理が1系統、出力が3系統あります。 入力はMySQLからのインポートとログのロードがあり、どちらも独自に構築したシステムで行われています。 DB内部のデータ処理はSQLバッチのみです。 そして出力は管理画面やBIツールからのアクセスとバッチ処理によるエクスポートに大別できます。 以下1つずつ説明していきましょう。 入力その1: MySQLインポートシステム MySQLからRedshiftへのマスターテーブル取り込みにも独自のインポートシステムを使っています。 このインポート処理には、つ

    クックパッドのデータ活用基盤 - クックパッド開発者ブログ
    tgk
    tgk 2020/01/04
  • スキューのない世界を目指して - クックパッド開発者ブログ

    こんにちは。インフラストラクチャー部データ基盤グループの小玉です。 先日Amazon Redshift(以下、Redshift)で32TBのテーブルを全行スキャンするクエリを3同時に走らせたまま帰宅し、クラスターを落としてしまいました。 普段はRedshiftのクエリをチューニングしたり、データ基盤周りの仕組みを慣れないRubyで書いたりしています。 突然ですが、スキュー(skew)という単語をご存じでしょうか。 「skew 意味」で検索すると「斜め」とか「傾斜」といった訳が出てきますが、コンピューティング界隈では「偏り」という訳語が定着していると思います。 さらに、分散並列DB界隈で単にスキューもしくは偏りと言った場合、それはしばしばデータの偏りを指します。 データが偏っているとは データが偏っているとは、複数ノードで構成される分散並列DBにおいて、各ノードが保持するデータ量(行数)に

    スキューのない世界を目指して - クックパッド開発者ブログ
    tgk
    tgk 2017/07/25
  • Amazon Redshiftへ継続的にデータをロードする際に気をつけること - クックパッド開発者ブログ

    こんにちは、インフラ部データ基盤グループの小玉です。 データ基盤グループでは、Amazon Redshift(以下、Redshift)へ継続的にデータをロードする仕組みを、約半年に渡り構築・運用してきました。この記事では、その中で学んだことを共有させて頂きます。 弊社では情報系システムの一部に、AWSが提供するRedshiftという分散データベースを利用しています。情報系システムとは、データ分析を主な用途とするシステムのことです。なかでもRedshiftはSQLを使った大量データの高速な分析に最適化されているため、DWH(データウェアハウス)としての利用に適しています。 DWHの構築に必要なタスクとしては、データソースの特定、モデリング、データの抽出・変換・ロード(ETL)、クエリツールやBIツール導入、パフォーマンス・チューニング、メタデータの管理、バックアップ・リストアなど、があります

    Amazon Redshiftへ継続的にデータをロードする際に気をつけること - クックパッド開発者ブログ
    tgk
    tgk 2016/10/05
    "ELT"はETLのtypoではなかった。LoadしてからTransformする戦略を指す言葉らしい
  • 巨大なバッチを分割して構成する 〜SQLバッチフレームワークBricolage〜 - クックパッド開発者ブログ

    トレンド調査ラボの青木峰郎(id:mineroaoki)です。 好きなRubyのメソッドは10年前からString#slice(re, nth)ですが、 最近はRubyよりCoffeeScriptとSQLのほうが書く量が多くて悩んでいます。 今日はわたしが開発している「たべみる」の背後で働いている 巨大バッチの構成について話したいと思います。 たべみるのバッチは約3000行のSQLで構成されており、 処理時間が1日で4時間程度かかる、そこそこの規模のプログラムです。 このバッチ処理プログラムをBricolage(ブリコラージュ)というフレームワークで構造化する手法について説明します。 「たべみる」とは まず最初に、「たべみる」がどういうものなのかごく簡単にお話ししておきましょう。 「たべみる」は企業のみに提供しているB2Bの分析サービスで、 クックパッドレシピ検索の分析をすることができま

    巨大なバッチを分割して構成する 〜SQLバッチフレームワークBricolage〜 - クックパッド開発者ブログ
    tgk
    tgk 2015/06/28
    Redshiftで使えるBatchWalkerみたいなやつ
  • 1