タグ

ブックマーク / www.yasuhisay.info (38)

  • 複数の企業でデータエンジニアとして求められたスキル - yasuhisa's blog

    最近「ああ、これ前職でも前々職でもやったことあるなぁ」という仕事があった。データエンジニア(やその関連職種)として働き始めて約5年、3社でフルタイムとして働いてきて「このスキルは業界や組織規模が変わってもデータエンジニアとしてスキルを求められることが多いな」と感じたものをまとめてみることにした。棚卸し的な意味はあるが、特に転職用などではないです。 前提 どこでも必要とされたスキル データマネジメントに関する概要レベルの知識と実行力 セキュリティや法令に関する知識 事業ドメインに関する興味関心 他職種とのコミュニケーション能力 コスト管理 / コスト削減のスキル ソフトウェアエンジニアとしてのスキル DataOpsやアラートのハンドリング能力 分析用のSQLを書く力 古いテーブルやデータパイプラインを置き換えていくスキルや胆力 あるとやりやすいスキル 関連部署の動きを何となく把握しておく力

    複数の企業でデータエンジニアとして求められたスキル - yasuhisa's blog
  • dbtで見やすいER図を生成する - yasuhisa's blog

    背景: dbtを使っていてもER図は欲しい! どうやってER図を生成するか どうやってER図を見やすくするか まとめ 背景: dbtを使っていてもER図は欲しい! dbtはモデル間のリネージなど可視化が得意なツールではありますが、万能なわけではありません。モデルの生成過程などはリネージで担保できますが、分析時に「どれとどのモデルがJOINできて、JOINする際のキーはこれを使って」というER図で扱うような可視化はディフォルトではできません。 DWHを作っている側からすると「このテーブルはあの辺のテーブルと一緒に使うと便利で、いつもあのキーでJOINして」というのが頭の中に入っていることが多いため、ER図がなくてもどうにかなることも多いでしょう。しかし、分析に慣れていない人や分析に慣れている人であっても、普段と異なるドメインのテーブルを触るときはER図が提供してくれる情報は有用です。ちなみに

    dbtで見やすいER図を生成する - yasuhisa's blog
  • DWH改善に生かす! 入門elementary - yasuhisa's blog

    前提: これは何? dbtを使ったデータプロダクトを作っている社内のチームメンバー向けに書いた勉強会用のドキュメントです 社外に公開できるように少し抽象化して書いてます DWHに限らずdbtを使ったデータプロダクトで生かせる話ですが、分かりやすさのためにDWHを題材にしています 3行まとめ elementaryはdbtを利用しているデータパイプラインに対してData Observabilityを強化するツールであり、付属のリッチなレポートやSlachへのアラート通知が便利です しかし、実はelementaryが内部で生成している成果物はDWHの改善に役に立つものがたくさんあります エントリではelementaryの成果物や役に立つ実例を多めに紹介します 前提: これは何? 3行まとめ 背景: DWHとデータ品質 Observability / Data Observabilityについて

    DWH改善に生かす! 入門elementary - yasuhisa's blog
  • 派生先テーブルの参照回数も考慮して安全にテーブルを撤退する - yasuhisa's blog

    3行まとめ テーブルの撤退時にはテーブルの参照回数を見ることが多いと思いますが、テーブル単独の参照回数を見るだけだと不十分なことが多いです 派生先のテーブルの参照回数まで考慮すると、テーブルが撤退できるか安全に判断することができます リネージ上の親子関係をWITH RECURSIVEで考慮しながら、累積参照回数をSQLで導出できるようにし、安全にテーブル撤退を判断できるようにしました 3行まとめ 背景: テーブルの撤退にはテーブル単独の参照回数を見るだけだと不十分 アイディア: 累積参照回数を計算する 実装 テーブル間の親子関係を抽出する WITH RECURSIVEでテーブルの親子関係を辿る テーブルの親子関係を考慮しながら、累積参照回数を計算する まとめ 背景: テーブルの撤退にはテーブル単独の参照回数を見るだけだと不十分 データエンジニアやアナリティクスエンジニア仕事をしていると、

    派生先テーブルの参照回数も考慮して安全にテーブルを撤退する - yasuhisa's blog
  • データエンジニア / Analytics Engineer向けの権限管理のためのTerraform紹介 - yasuhisa's blog

    これは何? 背景: 権限管理とTerraform 権限管理の対象 誰に権限を付与するのか どのスコープで権限を付与するのか どの強さで権限を付与するのか Terraformについて Terraformの概要: 権限管理でTerraformを使うと何がうれしいのか 例: roles/bigquery.jobUserを付与してみる コラム: どこでTerraformを実行するか Terraformでの権限管理の例 例: データセットの作成 例: データセットに対する権限付与 サービスアカウントの管理 iam_member関連の注意点: AdditiveとAuthorativeを意識する Terraformで管理されていなかったリソースをTerraform管理下に置く: terraform import Terraformの登場人物 terraform planやterraform applyの

    データエンジニア / Analytics Engineer向けの権限管理のためのTerraform紹介 - yasuhisa's blog
  • データ活用の関係者に課題感のヒアリングをする時の型を紹介する - yasuhisa's blog

    背景: データマネジメントのアセスメントのために各部署に現場の課題感をヒアリングしたい 課題: よいヒアリングをするのは簡単ではない 解決案: ヒアリングの型を決める ヒアリングの質問とリサーチの質問を別々に持っておく ヒアリング対象者について事前に理解を深める 全員に同じ項目を聞かない & 全体のカバレッジも担保する その場で問題解決を始めない まとめ 参考 背景: データマネジメントのアセスメントのために各部署に現場の課題感をヒアリングしたい データガバナンスを強化したいときにアセスメント(データマネジメント成熟度アセスメント)をやる人は多いと思う。データ基盤やデータに強い人だけでアセスメントをやって「えいや!!」と優先度を決めるのも一つの手ではある。 しかし、データを通じてユーザーに価値を届けるということまで考えると、データ活用に関わる幅広い職種の現場へヒアリングに行くことが、データ

    データ活用の関係者に課題感のヒアリングをする時の型を紹介する - yasuhisa's blog
  • BigQuery Scriptingの便利な使い方をまとめてみた - yasuhisa's blog

    背景 & Disclaimer 自分自身はこれまでBigQuery Scriptingをほぼ使っていませんでした BigQuery自体は3年くらいの利用歴 SQL単発で済ませるのが苦しそうな場合は、Pythonなどのプログラミング言語 + ワークフローエンジンの組み合わせで戦っており、自分としては特に困っていなかった 社内で他の方が使うケースをぼちぼち見ることがある 自分は困っていなくても、社内のBigQueryユーザーでBigQuery Scriptingを使っていて困っている人がそれなりにいる 著者はそれなりのBigQueryユーザーがいる企業のデータ基盤の人間です さすがに「使ったことないので、分からないですねー」で済ませるわけにはいかなくなってきた そもそもどんなユースケースで便利なのかすらも分かっていない状態なので、便利そうに思える場合をまとめてみることにしました というわけで、

    BigQuery Scriptingの便利な使い方をまとめてみた - yasuhisa's blog
  • コマンドラインからCloud Monitoringに簡単にメトリックを投稿できるツールを作った - yasuhisa's blog

    3行まとめ Cloud Monitoringにメトリックを投稿するのは案外面倒 コマンドラインからさっとメトリックを投稿するのに便利なツールを作った jqでさっと加工して、がっとメトリックを投稿したいときにどうぞ 背景 Cloud MonitoringはGCP上で監視を行ないたい場合、便利なサービス 仕事でも趣味でも使っている 事前に用意されている指標や自分で作ったカスタムメトリックを投稿できる ref: 指標の一覧  |  Cloud Monitoring  |  Google Cloud しかし、メトリックを投稿するのは案外面倒 ref: カスタム指標の作成  |  Cloud Monitoring  |  Google Cloud 別に難しいことはないのだが、「JSONで返ってくるAPIのレスポンスをjqで適当に加工して、Cloud Monitoringに投稿して〜」をやろうとすると

    コマンドラインからCloud Monitoringに簡単にメトリックを投稿できるツールを作った - yasuhisa's blog
  • データエンジニアリングやデータ活用の知見を共有するコミュニティdatatech-jpをやってますという話 - yasuhisa's blog

    この記事は、datatech-jp Advent Calendar 2021の1日目の記事です。 datatech-jpというコミュニティについて 何をやっているコミュニティなの? The Self-Service Data Roadmap読み会 Airflow困り事相談会 waiwai会 どういうコミュニティにしていきたいか datatech-jpというコミュニティについて こんにちは。モノタロウでデータエンジニアをやっているid:syou6162です。 今年の夏頃からdatatech-jpというコミュニティの運営に関わっています。元々はThe Self-Service Data Roadmapというの読み会のためにSlackを立てたのがきっかけでした。 評判の良い The Self-Service Data Roadmapの輪読会を8月くらいからゆるっと始めようと思ってます。 興味あ

    データエンジニアリングやデータ活用の知見を共有するコミュニティdatatech-jpをやってますという話 - yasuhisa's blog
    fumikony
    fumikony 2021/12/02
  • どのrevisionでterraform applyされたものか分かるようにtfstateに情報を埋め込む - yasuhisa's blog

    背景 Terraformでリソースをコード管理をしている場合、大抵gitでバージョン管理している terraform applyしたものがまずかった場合、どの差分によるものか、いつから発生していたものなのか、誰の実行によるものかといった情報が欲しくなる backendをgcsなどにしている場合、オブジェクトのバージョニングを有効にしていれば、いつオペレーションが実行されたかなどを追える 事故ってたケースの調査などで特に欲しい revisionの情報や実行者の情報は素のTerraformでは分からないので、何かしらの形で情報を埋め込みたい やってみたこと: makeで情報を外から与える varで外から情報を与えてみる形を考えてみました。こんな感じで変数とoutputを定義しておきます。 variable "current_revision" { description = "terrafor

    どのrevisionでterraform applyされたものか分かるようにtfstateに情報を埋め込む - yasuhisa's blog
  • dbtを触ってみた感想 - yasuhisa's blog

    データエンジニア系の勉強会で最近dbtがぱらぱらと話題に出てくるようになった & 4連休ということで、夏休みの自由研究がてらdbtを触ってみました。書いてる人のバックグラウンドは以下の通り。 DWHやデータマートの構築のためのETLツールを模索中(特にTの部分) プライベートではDataformを使っている 前職でも仕事の一部で使っていた 開発効率を計測するデータ基盤の管理にDataformを使ってみた - yasuhisa's blog 定期バッチ処理はArgo Workflows on GKEでやっている 触ってみないと肌感とか自分で運用できるかのイメージが湧かないのでね。 Dataformとの比較 細かいノウハウ 手元や番環境での動作 Argo Workflowとの連携 環境によってDWHの提供するバージョンを差し替える DWHやデータマートの外の情報をデータリネージに加える 既存

    dbtを触ってみた感想 - yasuhisa's blog
  • データウェアハウスのバージョン管理をどうやるか - yasuhisa's blog

    というのをチームで議論する機会があったので、書いてみます。「うちではこうしている」とか「ここはこっちのほうがいいんじゃない?」とかあったらコメントで教えてください。 背景 / 前提 データウェアハウスのテーブルを社内に広く提供したい 初期の提供時期が過ぎてしばらくすると、要望を元にスキーマの変更や集計ロジックの変更が入る (事前にレビューはもちろんするが)SQLのミスなどで以前のバージョンに戻したいといったことがありえる 他の部門では新しいバージョンをすでに使っていて、気軽に戻せないこともある データウェアハウスのバージョンを場面に応じて複数提供できると都合がよい 一方で、大多数のデータウェアハウスのユーザーは最新バージョンの利用だけでよいはず SSOT(Single Source of Truth)になっていて欲しいわけなので... 複数バージョン見えていると「どのバージョンを使えばいい

    データウェアハウスのバージョン管理をどうやるか - yasuhisa's blog
  • TerraformのModuleでデータマネジメントしやすくする - yasuhisa's blog

    背景: Terraformを使いつつ、データマネジメントの観点から統制を取りたい Terraform Moduleを定義する 例: データセット まとめ 背景: Terraformを使いつつ、データマネジメントの観点から統制を取りたい GCPでデータ基盤を管理する場合、Terraformはよい選択肢の一つです。データセットやそれに関連するIAMの管理、データセット内のビューの定義をIaCとして管理できます。 google_bigquery_dataset | Resources | hashicorp/google | Terraform Registry google_bigquery_table | Resources | hashicorp/google | Terraform Registry データマネジメント、特にメタデータ管理の観点でもTerraformは有用です。例えばこう

    TerraformのModuleでデータマネジメントしやすくする - yasuhisa's blog
    fumikony
    fumikony 2021/07/13
  • 昔は苦手だったモブプロを今は推進する側になっていた - yasuhisa's blog

    3~4年前はモブプロにめちゃくちゃ苦手意識があったんだけど、最近はなぜか(?)モブプロを推進していく旗振りをしている。モブプロの取り組み自体については今度会社のTech Blogに書く予定だけど、このエントリでは自分の心境の変化にフォーカスを当てる。人間、数年すると割と変わるもんだなぁと思って面白かったので、記録に残しておく。 モブプロが苦手だった頃 なぜモブプロしようとなったか 今はどうモブプロしているか 所感 モブプロが苦手だった頃 前職の開発チームにいた頃(3年前くらい)で、状況はこんな感じ。 7~8人くらいの規模の開発チーム 京都と東京でそれぞれメンバーは分かれているが、まだ物理出社している時期だったので、大きなディスプレイに写された自分の画面をみんなが見るスタイル 時間は60~90分くらいだったかな タイピストはガンガン交代するスタイルではなく、1回を1~2人のタイピストで回して

    昔は苦手だったモブプロを今は推進する側になっていた - yasuhisa's blog
  • コロナ禍での転職活動(データエンジニア)についてのメモ - yasuhisa's blog

    Twitterでは先に言っていましたが、現職のはてなを3月末で退職します。3/19が最終出社日でした。はてなでの思い出はこちらに書きました。 そのため、転職活動をしたわけですが、コロナ禍での転職活動は平常時と異なる部分も結構ありました。また、データエンジニアとしての転職は初めての経験でした。誰かの参考になるかもしれないので、私が考えたことや感じたことをメモ書きとして残しておきます。 在宅勤務と就業可能な地域 Web上でのアウトプット データエンジニアという職種の多様性 転職にあたって重視したこと 魅力に感じた点 当然、不安もある 在宅勤務と就業可能な地域 カジュアル面談させてもらった企業さんは、ほぼ在宅勤務に移行済みだった 隔週や月一で物理出社という会社も半々くらい? 緊急自体宣言が出ていない時期(夏〜秋)にカジュアル面談させてもらったので、今は状況が違うかも カジュアル面談、採用面談もz

    コロナ禍での転職活動(データエンジニア)についてのメモ - yasuhisa's blog
  • 開発効率を計測するデータ基盤の管理にDataformを使ってみた - yasuhisa's blog

    Dataformを初めて使ってみたので、雑に感想を書いておきます。結構よかった。 使ってみようとした背景 Dataformについて 試してみてどうだったか よかった まだまだこれからっぽいところ & 気になり 参考 使ってみようとした背景 今週、社内の開発合宿に参加していた。変更のリードタイムやデプロイ頻度などのFour Keysにあるような指標を計測できるデータ基盤を作るのが目標。様々なチームの開発のパフォーマンスをトラッキングしやすくして、うまくできているチームがなぜうまくいっているのかを明らかにしたり、改善施策を行なった結果指標も改善しているか定量的に確認できるようにして、開発効率を上げる土台を作るというのが目的。この辺の詳しいことは後々別のエントリで書かれると思う。 自分のチームは3人構成で、在宅のオンラインでやっていた。 id:shiba_yu36さん Mackerelチームでも

    開発効率を計測するデータ基盤の管理にDataformを使ってみた - yasuhisa's blog
  • はてなで働き始めてからほぼ5年になるので振り返ってみる - yasuhisa's blog

    そろそろ前職を退職してから、はてなで働き始めて5年(!)が経とうとしている。5年も働いていると、昔何をやっていたか、その当時どういう気持ちで働いていたかを忘れてしまう。備忘録っぽく書き残しておこう。ポエムです、長いです、大体自分向けに書いてる。 NTT CS研 => 株式会社はてな チーム開発への適応 インフラ苦手意識の克服 教師なし機械学習番環境での運用 データ基盤とCustomer Reliability Engineerへの挑戦 今後はデータエンジニアリング NTT CS研 => 株式会社はてな 基礎研究職からWebアプリケーションエンジニアへの転職だった。ログを残しておくと、こういう時に振り返れて便利。 NTT CS研を退職して、株式会社はてなに入社しました - yasuhisa's blog 割と珍しい(?)転職ではあったかもしれないが、機械学習や自然言語処理はアルゴリズム単

    はてなで働き始めてからほぼ5年になるので振り返ってみる - yasuhisa's blog
  • esa.ioに分報っぽく投稿するアプリをReactとFirebaseで作った - yasuhisa's blog

    こういう風に投稿すると(左)、esa.ioにこういう感じ(右)で投稿される分報風のアプリを自分用に年末年始に作りました。 作った動機 使った要素技術 Firebase Authentication Firebase Hosting + React Firebase Cloud Functions デプロイ自動化 所感 作った動機 きっと皆さんそうしているように、私も日々ログを残しながら作業をしている。仕事ではscrapboxを使っているが、プライベートではesa.ioを愛用している。プレビューを見つつmarkdownで書けたり、タグとカテゴリがいい感じに使えたりするところが気に入っている。あと、アイコンがかわいい。 ちゃんと作業をするときにはesa.ioにページを作るが、そうでない雑なものも記録したいときが度々ある。例えばこういうの。 今度コンビニ行ったとき、忘れずにXXXを買う 統計の

    esa.ioに分報っぽく投稿するアプリをReactとFirebaseで作った - yasuhisa's blog
  • データ分析を元にFAQサイトを継続的に改善する - yasuhisa's blog

    FAQサイト、サポート問い合わせをせずとも自分で疑問を解決できて便利ですよね。でも、検索した単語が一件もヒットしないと、ちょっとガッカリしてしまします。そういったガッカリを減らすために、簡単なデータ分析を使ってFAQサイトを継続的に改善する話を書いてみます。 ...というのも、自分が仕事で関わっているMackerelでは最近FAQをリニューアルしたからなのでした。 MackerelのFAQではZendesk Guideを利用していますが、Zendesk Guideは便利なAPIが用意されているので、それと既存のデータ基盤を組み合わせて改善していく形です。 FAQサイト内の検索語を列挙する まず、FAQサイト内でどういった単語が検索されているのかを列挙します。Google Tag Manager経由でFirebase Analyticsにデータを飛ばすと閲覧状況が分かりますが、そのログをBi

    データ分析を元にFAQサイトを継続的に改善する - yasuhisa's blog
  • BigQueryのテーブルのメタデータをCloud Data Catalogで管理する - yasuhisa's blog

    自分が使いたいと思ったBigQuery上のリソース(tableやview)、内容を事前に完全に把握できている、ということは結構少ないのではないかと思います。そういったときに手助けをしてくれるのがメタデータです。BigQueryのリソースに対するメタデータを、Cloud Data Catalogのタグとして付与する方法を紹介します。Cloud Data Catalogを使うことで、分析者が必要なリソースに素早く辿り付いたり、正確な分析をするためのサポートができます。 BigQuery関連のAudit logを元に、以下の情報をData Catalogのタグに入れた。 - 最後にクエリを投げた{日, 人} - クエリを投げられた回数 「あまり使われていないので、信用できないデータかも」「最後にXXXさんがクエリ投げてるから、詳細詳しいかも」みたいな用途を想定してる pic.twitter.co

    BigQueryのテーブルのメタデータをCloud Data Catalogで管理する - yasuhisa's blog
    fumikony
    fumikony 2020/05/18