Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

BIツール「Looker」の分析画面について紹介します

こんにちは。メルペイデータアナリストのhase-ryoです。

激動の2018年が終わり2019年となりました。
メルペイは引き続きリリースに向けて開発を頑張っております。

以前新ダッシュボード「Looker」の導入について本Blogでご紹介いたしました。前回(18年8月)はメルカリJP、メルペイともに導入段階でしたが、それから4ヶ月が経過し、今では経営会議でも毎回見られるくらいに浸透したBIツールとなりました。

これにはLookerのもつダッシュボードのバージョン管理という稀有な特徴により開発が素早く進んだことの他、簡単に分析できるUIにより、PMなどのデータを見たい人に使ってもらえたことが大きく貢献しています。

今回はそんなSQLを書いたことがない人でも簡単にデータ分析が出来る「Explore」機能について、その詳細をご紹介します。 Lookerを使った分析のイメージに役立てていただければ幸いです。

Lookerとは?

以下のような特徴をもつBIツールです。Looker公式ページ

  • 様々なデータソースに接続可能
  • ダッシュボードや個々の指標の定義をコードで記述できる
  • Githubと連携して定義のバージョン管理が可能
  • 利用状況のトラッキングが容易

詳しくは前回の記事をご覧ください。

tech.mercari.com

続きを読む

mercari.go #5を開催しました

はじめに

こんにちは、mercari.go オーガナイザーの@morikuniです。

1月8日にメルカリ主催のGo勉強会 mercari.go #5 を開催しました。 今回は、社内向けシステムでのGoの活用事例や、メルカリのマイクロサービス化、GoのgRPCライブラリの紹介をしました。 この記事では、各発表を簡単にまとめて紹介しようと思います。

f:id:inukirom:20190109175932p:plain

続きを読む

Super fast and parallelized Android UITest(Appium) environment using AWS, Docker and Android emulator

f:id:tadashi-nemoto0713:20181129162340j:plain


FYI. This is a translation from Japanese article.

tech.mercari.com

Hello. I`m Tadashi, an Automation Engineer from Mercari’s Automation & Quality Assurance Group (AQA).

I mostly work on test automation and improving mobile CI /CD.

I’ll talk about a test automation environment which can run Appium/Android tests with 20~30 emulators.

  • Current Android test automation environment and its problems
  • Docker-Android
  • How to create in the cloud
    • Enable Nested Virtualization
    • Using Bare Metal Instances
  • Benefits of using Docker-Android
  • Problems to be solved
    • Divide roles between emulators and real devices
    • Server load to QA environment
    • Distribution of tests and test report.
  • Endnote


f:id:tadashi-nemoto0713:20181127193934j:plain
Jenkins pipeline to execute parallel test automation using Android emulator

続きを読む

TB越えのMySQL 巨大テーブルを 1日で BigQueryへLOADする

こんにちは!!

私はメルカリでSREをしている k-oguma ( ktykogm ) です。

ちょうど1年くらい前にジョインしました。

よろしくお願いします!

今日は、タイトルの件で対応した方法をご紹介したいと思います。

  • それはある日突然やってきた
  • TL;DR
  • BigQueryへLOADさせる方法を考える
  • 初期の検討
  • 見直し
  • Embulk
    • Embulk 説明
  • Digdag
    • Digdag 説明
  • Digdag呼び出し処理
    • Dry-run
    • いざ、実行
    • 補足: もっと高速化させたいなら
  • 終わったあとは
  • 最後に
  • 参考にしたURL

それはある日突然やってきた

ある日、ETL作業 (データ分析基盤運用)の依頼がUSチームからやってきました。

要件は次のようなものでした。

  • 1.4TB サイズの MySQL innodb tableを1つをBigQueryに上げる
    • 約1年分。期間指定。
  • 期限数日、なる早
  • 対象のcoloumsは全て
  • 期間指定以外のデータ加工は不要

...やっていき!

続きを読む

Microservices の裏で動く Microservices を Go で開発している話

Mercari Advent Calendar 2018 の 25 日目はメルカリ JP の Microservices Development Team の @codehex がお送りします。

これまで私達は Microservices を開発している旨を様々なテックイベントやカンファレンスで話してきました。中でも Mercari Tech Conf 2018 で Monolith なアプリケーションから Microservices へ移行するために、私達がどうしているかという話が目立っていたと思います。

そのうちの一つである Listing Service という出品機能の Microservice の話がありました。

資料の内容をまだ知らない方のために、本記事を理解するために補足します。

  • メルカリでは Microservices を基本的に Google Cloud Platform(以下、GCP と表記する) 上で作成する
  • 現在は Monolith が持つエンドポイント単位を Microservices へ移行している(1 : N = エンドポイント : Microservices)
  • メルカリが保持するデータは、基本的にさくらインターネット株式会社が提供するデータセンター(以下、さくらと表記する)へデプロイしている MySQL に保存される

本記事では上記の資料で少しだけ登場した、さくら上にある Microservices の一つである Item Service を開発する際に得た知見について記述します。Listing Service から商品情報を登録する際に呼び出される Create を例にとって説明するので Go のコードもチラ見せします。

続きを読む