ブログのしゅーくりーむ

技術的なメモとかライフログとか。

技術書典9で「Apache Parquet ではじめる快適 データ分析」を出します

技術書典9 で「Apache Parquet ではじめる快適 データ分析」を出します。 もしよろしければお手にとっていただければ幸いです。 まあ今回はオンライン開催で電子書籍のみの配布なので、物理的にお手に取れないんですけどね〜! 本書は Apache Parquet …

Data Mesh の記事を読んだ

一年以上前の記事だけど、 https://martinfowler.com/ に "Data Mesh" をうたう記事があったので軽く読みました。 martinfowler.com こちらに日本語で概要をまとめた記事もありご一読することをおすすめします。 僕の個人ブログを見るより確実で良い情報を得…

Avro と BigQuery の load とうまく付き合いたい

Avro と BigQuery の読み込み Apache Avro は BigQuery のデータ読み込みに対応したシリアライゼーションフォーマットであり、 Object Container Files フォーマットを採用することでスキーマが自己記述的になり読み込みに際して別途スキーマ情報を与えなく…

Cloud Dataflow の FlexTemplate は何者か

先月、さらりと Cloud Dataflow に FlexTemplate という新機能のベータ版がリリースされました。 cloud.google.com 残念ながらまだあまりドキュメントがなく、これを用いるとなにが嬉しいのかが掴みにくいところです。 本記事では FlexTemplate 周りを軽く試…

Schema Registry について書いていく: Confluent Schema Registry の Protocol Buffers & JSON Schema サポート

先日リリースされた Confluent Platform 5.5 より Protocol Buffers と JSON Schema のサポートが入ったようです。 www.confluent.io 以前 5.4 を対象に、 Schema Registry を中心に色々記載してみましたが、今回は 5.5 で入ったこの差分を追跡してみます。 …

protobuf のシリアライズ済みバイナリを無理やり読む

Protocol Buffer wire format について Protocol Buffer でシリアライズされた後のバイナリのレイアウトの仕様は wire format の仕様という形で独立してドキュメントが用意されています。 この wire format の仕様は見ればわかる通りそれほど記述量が多くな…

原則 WFH 勤務が開始して二ヶ月が経過した

タイトルの通りで単なる日記なのですが、今の心境を赤裸々に綴っておくと後で振り返れると思いつらつら書きます。 なおこのエントリは個人の意見ですし、同じ会社同じチームでも受け取り方や課題感はだいぶ差異が出るんじゃないかなーと思っています。 二ヶ…

BigQuery SQL UDF の挙動を色々確認する

BigQuery ではユーザ定義関数(UDF) を作ることができる。 これを使って、よく使われる式や関数呼び出しの組み合わせを名前付けして再利用できる。 cloud.google.com UDF は SQL と JavaScript の二種類の言語による記述が可能で、後者は色々なトリッキーな利…

Apache Parquet の Logical Types に関するメモ

去年末になりますが、 embulk-output-s3_parquet という Embulk Plugin にて Logical Type をサポートするためのパッチを書き、マージしていただきました。 github.com 個人的な主な目的は timestamp 型をサポートすることでした。 Athena や BigQuery から…

Schema Registry について書いていく その1: Confluent Schema Registry

分散アプリケーション間のメッセージングやログ収集基盤において、しばしばスキーマの扱いは便利である反面頭を悩ませる種になります。 スキーマを厳密に定義して、 Protocol Buffers や Avro などのシリアライゼーションフォーマットを用いることで、メッセ…

Apache Avro について知っていることを書いていく その2

Apache Avro について書き下していく記事その 2 です。 本記事では Avro で表現されるデータのプログラミング言語上の表現、特に Java を想定して SpecificData と GenericData について触れていきます。 Avro のデータ型とコード生成 前回の記事で触れた通…

Apache Avro について知っていることを書いていく その1

Apache Avro になにかと縁があり、かつ普及しているテクノロジーの割に日本語の情報がそんなにない(個人の意見です、意外とあるかも)のでつらつら書いてみます。 整理はされておらずシーケンシャルに要素を並べています。 実装についてとくに言及がされて…

「データとML周辺エンジニアリングを考える会」という勉強会の第二回を開催しました

TL;DR 2019/07/19(金)に、ヤフー株式会社様コワーキングスペースの LODGE において、「データとML周辺エンジニアリングを考える会」という勉強会の第二回目を開催しました。 data-engineering.connpass.com データエンジニアリングとサイエンス、アナリティ…

技術書典5で配布した同人誌の原稿データを GitHub で公開しました

こちらで紹介した、僕が主催するサークルで技術書典5で配布した同人誌の原稿データを公開しました。 syucream.hatenablog.jp リポジトリはこちらになります。 github.com 前回と同様、 Re:VIEW を使って記述しています。 epub / pdf ファイルが欲しい方はい…

Kubernetes と CSI(Container Storage Interface) について

この記事は Kubernetes2 Advent Calendar 4 日目の記事です。 本記事は CSI(Container Storage Interface) と Kubernetes での CSI のサポートについて触れます。 執筆に時間があまり割けなかった為、後でもう少し加筆する、あるいは別途続きの記事を書くか…

Kubernetes 上で動作するコンテナから安全に FUSE を利用したかった

本題の通りの気持ちがあったのですが、結論としては手軽にできる良い方法は無いようでした。 備忘録的に挑戦した事を記録しておきます。 背景: FUSE 利用のモチベーション 言うまでもなくファイル I/O はシステム開発においてよく使われる機構であり、多くの…

ISUCON8 に参加して最終成績が本戦3位だった

タイトルのとおりです。何やかんやあり ISUCON8 の予選を無事突破した後に 10/20(土) LINE さんのオフィスにて本戦に参加して、最終成績 3 位に収まりました。 3 位だと特に表彰されるわけでもなく気持ちのみなのですが。 チーム構成と役割分担について 職場…

POSIX message queue を Go のコードから利用するためのライブラリ posix_mq を作った

表題の通りです。 github.com cgo を使って POSIX message queue の基本的な操作、 open/close と send/receive とその他細々とした機能を実装しています。 とは言っても、それほど複雑なことはしておらず、 POSIX の関数呼び出しを愚直に Go の func にラッ…

技術書典5にてマイクロサービスとEnvoy、暗号通貨についての薄い本を配布します

明日 10/08 (月) は技術書典5 の日ですね! techbookfest.org 当サークル「まいにちがきんようび。」もサークル参加して、新刊を配布する予定です!(既刊の配布予定はありません) techbookfest.org 内容としては、マイクロサービスと Envoy Proxy を試して…

Netflix のデータパイプラインを読み解きたい

Netflix はマイクロサービスアーキテクチャ界においてプロダクションで成功例を積んでいる、いわば大先輩だと思われます。 彼らは数多くのイベント登壇や techblog の記事、 GitHub 上による OSS の公開を行っており、それらからアーキテクチャやその変遷を…

株式会社メルカリに入社して1年が経過した

ちょうど一年前の 2017年8月16日に株式会社メルカリに入社しました。キリがいいこともあり、ここらで個人的な振り返りをつらつら書いてみます。あらかじめ、はっきりいって個人の日記レベルの内容であることをお断りさせていただきます。 転職の経緯から入社…

Cloud Spanner の DDL parser と DDL 変換ツールを作った

Cloud Spanner の DDL parser の Go 実装と、 Spanner DDL を MySQL DDL っぽいものに変換するツールを作りました。 本記事はこれらの紹介になります。 github.com github.com spar: Cloud Spanner DDL parser in Go Spanner の DDL は こんな感じ で、 SQL …

技術書典4で配布した同人誌の原稿データを GitHub で公開しました

以下の記事でご紹介した、弊サークルの技術書典4の新刊を GitHub で public repo として公開しました。 syucream.hatenablog.jp リポジトリはこちらになります。 github.com ビルド済み pdf は無く、またその他配布した原稿にしか含まれないコンテンツなどあ…

embulk-input-datastore を作った

TL;DR Cloud Datastore からデータをぶっこ抜いてくるための embulk input plugin を作りました。 github.com 普通に embulk gem install embulk-input-datastore した上で input plugin としてご利用ください。 参照するエンティティ、プロパティを絞り込む…

protobuf の Marshal/Unmarshal や Any 型について確認していた

あるメッセージの送り元と送り先でスキーマを共有してそのスキーマに基づいたメッセージをやり取りしたいことが多々あると思います。 そんな際にスキーマの記述を protobuf で行い、かつメッセージをシリアライズして送る構想について調査したメモを本稿で記…

MySQL のテーブル定義から外部キー制約を推測するツールを作った

GW 中の自分へのプチ課題として、表題の通りのツール hakagi(葉鍵, Leaf and Key) を作りました。ツール名には特に意味はありません。 github.com テーブル名やカラム名から外部キー制約を張れるような気がするカラムを選出し、制約追加のための ALTER TABLE…

技術書典4にサークル名「まいにちがきんようび。」で暗号通貨とDNSの本を配布します 

直前のお知らせになりますが、 技術書典4 に「まいにちがきんようび。」というサークル名で参加して技術系薄い本を配布します! techbookfest.org 以下のような内容になっています! 基礎から説明する暗号通貨 @lunatic_star 今日から始める IOTA @syu_cream…

何気ない発言で師匠を傷付けるスマートコントラクトを実装してみた

はじめに コインチェックの例の騒動を受け、なんだか僕もブロックチェーンネットワーク上で何かワチャワチャしたくなってみました。 ちょうど Ethereum が気になっていたこともあり、ちまたには傑作アニメの発言が流行っていることも助けて、試しに発言ボッ…

第1回WSA研究会に参加してみた振り返り

あけましておめでとうございます。年末年始はほぼ寝て過ごしていました。 表題の通り、去年に 第1回WSA研究会 というイベントに参加したのでその振り返りなどをさくっと書いていきます。 第1回WSA研究会全体への雑感 発表内容は以下の通りで、名前の通り Web…

WSA 研 #1 予稿 "再利用性の高い Test Drive Intrastructure 実行環境に関する取り組み"

第1回WSA研究会 という催し物に出る予定でそれ用の予稿を書いたのですが、折角なのでブログにも掲載しておこうと思います。あとで更新するかもです。 再利用性の高い Test Drive Intrastructure 実行環境に関する取り組み Infrastructure as code や CI/CD …