Safie Engineers' Blog!

Safieのエンジニアが書くブログです

Data Vault モデリングのご紹介

データ分析基盤グループでデータエンジニアをしている平川です。

近年注目されてきているDataVaultに関して、全3回(予定)で記事を書かせていただく予定です。
第1回の記事では、DataVaultとは何なのか?どんな特徴があるのかを書いていきます。
参考までに、1~3回の内容を紹介しておきます。(内容は変わる可能性が大いにありますのでお許しください🙇‍♂️)

第1回: DataVaultってなに?どんな特徴があるの? ← 今回はここ

第2回: dbtvaultを使って実際にDataVaultモデリングでテーブルを作ってみた

第3回: BusinessVaultの使い所や特徴的なSatelliteの利用におけるハマったところや良いところ

  • これまでのデータモデリング手法
    • 3NF
    • ディメンショナルモデリング
  • DataVaultとは何か?
    • Hub
    • Link
    • Satellite
    • モデリングにおける注意点
  • DataVaultの優れている点と課題
    • DataVaultの優れている点
      • 監査能力の高さ
      • 取得するデータが増える場合のような変更に対する柔軟性の高さ
      • 短いリリースサイクルでDWHを更新することの容易さ
    • DataVaultの課題点
      • クエリがJOINだらけになる
      • 初期構築時に「正しく」Hubを設計することが簡単ではない
  • まとめ/次回予告
    • Hub
    • Link
    • Satellite
  • 参考資料
続きを読む

顔はめパネルの作り方 ~ユーザーが入力した画像の特定の部分だけを切り出したい話~

こんにちは。セーフィー株式会社エンジニアの伊藤です。

今回の話はややフロントエンドエンジニア向けの内容となるのですが、UI/UX に関わる話もありエンジニアの方でなくてもお楽しみいただける内容となっていると思います。気軽に読んでいただけると幸いです。

さて、突然ですが、エンジニアのみなさんはユーザーが入力した画像のうち特定の部分だけを切り出したいと思ったことはないでしょうか?セーフィーでは SafieEntrance2という顔認証技術を使った入退場の管理システムの開発において、そんな場面に遭遇しました。

  • SafieEntrance2 の課題
  • 良さげな画像切り出しライブラリ
    • Cropperjs
    • Croppie
  • まとめ
  • おまけ
    • 画像切り出し Canvas API
    • マウス操作による切り出し範囲の変更
    • タッチ操作による切り出し範囲の変更
    • 終わりに
続きを読む

QCDグループって何しているグループ?

この記事はSafie Engineers’ Blog! Advent Calendar 2022 22日目の記事です。

こんにちは,あるいはこんばんわ

第1開発部QCDグループ 小山と申します。

アドベントカレンダーへの投稿に声がけいただけましたので

今回はQCDグループとしては”初”の投稿となりますので

よく聞かれるQCDグループって何しているのという点と

これからやりたいこと,目指したいことを紹介させていただきます。

一緒に開発に加わっている方にはほ~~んという内容なのは恐縮です。

  • QCDグループについて
  • チーム名は分かった,でもQCDって何しているの?
  • テスト業務ってなにしてるの?
    • テスト計画書とテスト仕様書について
      • テスト計画書とは
      • テスト仕様書とは
    • 次回予告
  • 最後に
続きを読む

エンジニア出身プロダクトマネージャー1年目でやったこと、できなかったこと

この記事はSafie Engineers' Blog! Advent Calendar 2022 16日目の記事です。

こんにちは、開発本部 モバイルグループの池田です。

2016年入社以来、セーフィーのWebフロントエンドやモバイルアプリの開発に関わり、近年は Safie Viewer for Mobile(iOS, Android)の開発チームリーダーとして、そして今年の5月ごろからは同プロダクトのPdM(プロダクトマネージャ)という立場でも活動しています。

この記事では、エンジニア出身のPdMがセーフィーのモバイル開発においてどのような取り組みをして、またどんな課題に直面していたのかを振り返ってみたいと思います。

  • セーフィーにおけるPdMの役割
  • B2B SaaSとモバイルアプリとPdM
  • 今年の主な活動とアウトプット
    • デザイナーとのチーム組成とFigma導入
    • VoC収集
    • ユーザーテスト
    • UX改善リリース
    • Map Viewerデモアプリ作成とPoC(進行中)
  • まとめと課題
  • おわりに
続きを読む

Amazon Aurora MySQL をバージョンアップグレード (5.6 -> 5.7) しました

はじめに

この記事は Safie Engineers' Blog! Advent Calendar 2022 23日目の記事です。

セーフィー株式会社 開発本部のソフトウェアエンジニア 斎藤です。 Safie のクラウド録画サービス の安定運用に寄与するべく、インフラ周りの構築・運用を主に担当しています。

今回は Amazon Aurora MySQL をバージョンアップグレード (5.6 -> 5.7) したお話です。

前回、私が執筆したブログ記事は GitHub Actions で小さな不便を解消してみた でした。約2年振りですね。

  • はじめに
  • アップグレードする必要性
  • アップグレード手順候補案
    • インプレースアップグレード方式
    • レプリケーション && DNS 切り替え方式
  • 検討する上での比較項目
  • 実際に採用した手順
    • 実際の作業イメージ
      • 前提条件
      • step1
      • step2
      • step3
      • step4
    • step4 の詳細手順
      • 万が一の rollback 手順
  • おわりに
続きを読む

driftctlによるIaC化推進に向けた取り組み

こんにちは。セーフィー株式会社 バックエンドエンジニアの村田 (@naofumimurata)です。

この記事はセーフィー株式会社 Advent Calendar 2022 の12月15日の記事です!

本記事ではセーフィーにおけるdriftctlというツールを活用したIaC化推進に向けた取り組みについてご紹介したいと思います。

  • セーフィーのインフラ環境と課題
  • driftctlとは
  • driftctlの使い方
    • 準備
    • スキャンの実行
    • 出力形式の変更
    • .driftignoreファイルによるスキャン対象からの除外
  • GitHub Actions による定期実行
    • ワークフローの解説
  • 取り組みの結果
  • driftctlを使ってみて
    • 良い点
      • カバレッジが出せる
      • 「何をコード管理しないか」をコード管理できる
    • 気をつける必要がある点
      • リソースが多い環境だとrate limit 超過のエラーで失敗する
  • まとめ
続きを読む

AWS Cost Categories でコスト集計作業を効率化

こちらは セーフィー株式会社 Advent Calendar 2022 の 14日目の記事になります。

はじめまして。セーフィーでインフラエンジニアをしている近江です。 セーフィーでは AWS の各サービスごとのコストを詳細に把握するため、"AWS Cost Categories" という AWS のサービスを使用しています。本記事では AWS Cost Categories とは何か、どのようなシーンで活用できるのか、実際の設定方法、気をつけるポイントについて書いていきたいと思います。

  • AWS Cost Categories とは
    • コストカテゴリとは
    • 利用料金
  • AWS Cost Categories を活用できるシーン
  • コストカテゴリの作成とルール設定
    • ルールに継承された値 (INHERITED VALUE) を使用する
  • 気をつけるポイント
    • コストカテゴリで使用できるディメンション
    • OR 条件は root レベルでは使えない
    • コストカテゴリの削除
  • まとめ
続きを読む

AIとローコードツールの組み合わせにプロトタイプ開発の夢を見た

はじめに

こんにちは、セーフィーのイマドです。

この記事はSafie Engineers' Blog! Advent Calendar 13日目の記事です。

セーフィーでは「映像から未来をつくる」というビジョンのもと、AIなどの技術をクラウドや映像と紐付けることでさまざまな業界の不を覆すソリューションを日々模索しています。

そんな折、画像生成AIのStable Diffusionや人間のように自然な対話ができるChatGPTなど、様々な技術がソーシャルメディア上で話題になってきました。実際に使ってみるとその完成度に衝撃を受けたという人も多いのではないでしょうか、私もその一人です。

これらの最新技術は別に雲の上の話ではなく、実は全ての人が少し手を伸ばせば届く距離にあるわけです。

そこである考えが浮かんできました。

世の中にある最新技術や既存の技術要素を部品に見立てて、レゴのように組み合わせることで業界や顧客の課題を解決できる価値を簡単に作れてしまうのではないか… そしてあわよくば、プログラミングとか面倒なことはAIにまかせてしまいたい…

AI「ボクタチ ハタラク アナタ ラクスル」

今回はそんな夢みたいな話を現実にしてくれるかもしれない組み合わせを見つけたのでご紹介します。

それが「対話AIのChatGPTと、ローコードツールPipedreamの組み合わせ」です。 次章からそれぞれを解説していきます。

  • はじめに
  • 各種技術の紹介
    • OpenAI ChatGPT
    • OpenAI API(GPT-3 text-davinci-003)
    • Pipedream
      • WEB上でコーディングが完結する。
      • 価格
  • 15分でAIチャットボットを作ってみる
    • 背景
    • ざっくり構成を考えてみる
    • STEP1:特定のチャンネルで特定の文字列を検知(Slack)
    • STEP2:文字列から必要な部分だけを取り出す(Function)
    • STEP3:回答文を生成する
      • Open AIアカウント設定
      • APIキーの発行
      • Pipedreamの環境変数にAPIキーを設定
      • OpenAI APIへのリクエスト
      • AIにキャラクターを付与する
    • STEP4:回答をスレッドに投下する。
    • テスト/デプロイする
  • 結果
  • おわりに
続きを読む

セーフィーで長期インターンシップを終えて

こんにちは、セーフィー株式会社の23卒、新卒エンジニア職入社予定の伊東です。

この記事はSafie Engineers' Blog! Advent Calendar 10日目の記事です。

私たち新卒一期生は入社前に5ヶ月間インターンシップを行ってきました。 このインターンシップの振り返りをしつつ皆さんにセーフィーという会社の教育環境や会社の雰囲気をお伝えしようと思います。

  • 自己紹介
    • 伊東
      • スキルセット
      • セーフィーを選んだ理由
      • インターンで期待していたこと
    • 土田
      • スキルセット
      • セーフィーを選んだ理由
        • 1.会社と事業のビジョンに共感できる
        • 2.エンジニアとして成長できる環境
      • なぜインターンをしようと思ったか
  • インターンで取り組んだこと
    • Udemy講座
    • チーム開発
      • 1. 仕様書作成(半月)
        • 難しかった点
        • 心がけた点
        • 画面遷移図
        • ER図
      • 2.開発環境構築(2週間)
        • フロントエンド
        • バックエンド
        • ぶつかった壁
        • 心がけたこと
      • 3. 実装(2ヶ月)
        • ぶつかった壁
      • 4. 結合テストとデプロイ(1週間)
        • 結合テスト
        • デプロイ
      • 完成したアプリケーション
        • 1. ログイン画面
        • 2. ユーザー一覧表示画面
        • 3. ユーザー情報詳細表示画面
        • 4. ユーザー情報変更画面
  • インターンで学んだこと
    • 伊東
    • 土田
続きを読む

Safie APIとNode-REDを連携して入退室された方の時間と体温を把握する

こんにちは、セーフィー株式会社 サーバサイドエンジニアの河津です。

この記事はSafie Engineers' Blog! Advent Calendar 6日目の記事、またenebular Advent Calendar 23日目の記事です。

約1年前に、弊社から提供しているSafie APIとNode-REDを連携して、ローコードな仕組みで会議室の空き状況を見る試みを記事にさせていただきました。

engineers.safie.link

今回はその続編ということで、この1年でSafie APIに追加された機能を用いて、部屋に入退室された方の時間と体温を把握するような試みをしてみようと思います。特に体温を取得できるというのは、ご時世的にもかなり需要があるのではないでしょうか。

Safie APIやNode-REDについての説明も上記記事内でさせていただいています。この記事内では説明を省略しますが、もし良ければ上記記事を読んでいただけると、この記事もわかりやすくなるかもしれません!

  • 今回作るもの
  • Safie Entrance2とは
  • フローの解説
    • injectノード
    • functionノード(Safie APIへ送るリクエストパラメータ作成)
    • http requestノード
    • functionノード(Safie APIからレスポンスパラメータを受け取り加工する)
    • slackノード
  • フロー実行
  • まとめ
続きを読む

© Safie Inc.