t_kootsのブックマーク (258)

  • データウェアハウスのデータモデリングを整理してみた - Qiita

    概要 スタースキーマからスノーフレーク、ギャラクシー、そしてデータボールトやアンカーモデリングまで、各スキーマの特徴、利点、そして適用シナリオを掘り下げます。 スタースキーマ スタースキーマを元に整理します。 スタースキーマ または 星型スキーマ はデータウェアハウスに利用される最も単純なスキーマである。スタースキーマには唯1つもしくは少数のファクト表と複数のディメンション表が含まれる。スタースキーマはスノーフレークスキーマの一種であるが、多くの用途で利用されている。 DWHに利用される最も単純なスキーマ 唯一または少数のファクトテーブルと、複数のディメンションテーブルが含まれる スノーフレークスキーマの一種 モデル ファクト表はデータウェアハウスでの解析で利用され、複数の異なるディメンションに区分される。ファクト表は主要なデータを持つ一方、ディメンション表は相対的にサイズが小さくディメン

    データウェアハウスのデータモデリングを整理してみた - Qiita
    t_koots
    t_koots 2024/03/04
  • Cloud Run でマイクロサービスを作る 5 つのポイントをまとめてご紹介!

    はじめに早速ですが、皆さんはマイクロサービスを構築するとしたら、どのような構成を考えますか? 多くの企業で、GKE を使ったマイクロサービス アーキテクチャが採用されています。選定理由として、Kubernetes が持つ機能や大きめなリソースが必要であったり、社内インフラチームによる Kubernetes のサポートがあるといった理由などがあります。一方、定期アップグレードなどの観点から、Kubernetes の運用は少し大変…と感じる方もいるかと思います。 GKE Autopilot の利用という考えもありますが、サーバーレスでコンテナを動かせる Cloud Run を使って、インフラ管理不要でマイクロサービスを構築が出来ると嬉しくないですか? 実際、そういった構成を採用されている企業も見かけます。 この記事では、設計や実装時に考えるであろう、以下の 5 つのポイントにフォーカスしてみた

    Cloud Run でマイクロサービスを作る 5 つのポイントをまとめてご紹介!
    t_koots
    t_koots 2023/09/24
  • ソフトウェア設計・アーキテクチャの学び方 - Qiita

    はじめに この記事はHow to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Mapを翻訳したものです。 翻訳がおかしい箇所などあればご指摘頂けるとありがたいです。 元記事の著者: Khalil Stemmler(@stemmlerjs) 設計、アーキテクチャ、フロントエンド、ブロックチェーンに興味ある方是非Twitter(@show_clements)フォローしていただけると嬉しいです! 設計に関する記事 ソフトウェアデザインとアーキテクチャは、DevOpsやUXデザインのように、コンピューティングの領域の中でも独自の研究分野となっています。ここでは、クリーンコードからマイクロカーネルまで、ソフトウェアデザインとアーキテクチャの幅広さを説明するマップを紹介しま

    ソフトウェア設計・アーキテクチャの学び方 - Qiita
    t_koots
    t_koots 2023/09/23
  • いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ

    【Unit4 ブログリレー4日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今回は、SNSではごく一般的ないいねとその通知機能をDynamoDBを利用して実装したら思ったより大変だったので、その詳細をご紹介します。 キャナルシティ劇場は、福岡県福岡市博多区の複合商業施設「キャナルシティ博多」のシアタービル最上階に位置する劇場。文には特に関係ありません。 m3ラウンジ m3ラウンジのいいねとその通知の要件 RDBで実装したらどうなるか いいね機能 通知機能 DynamoDBで実装する いいね機能 通知機能 いいねする いいねを取り消す 通知を表示する 未読の通知の取得 未読の通知数 未読の通知を既読にする テーブル設計むずい PKとSKに何を選ぶか LSIは途中から作れない DynamoDBをローカルで動かして設計する まとめ We are h

    いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ
    t_koots
    t_koots 2023/08/25
  • マーケター自身がデータを管理するために、広告運用にdbtを導入した経緯と効果 - MonotaRO Tech Blog

    こんにちは、マーケティング部門広告グループの小林です。この記事ではオンライン広告運用に使っているデータ変換処理をdbtに移行した過程と得られた効果についてご紹介します。 モノタロウでは、全社的なデータ活用研修などにより、マーケティングのようなビジネス系の部署でも、SQLを自身で書いてデータ抽出を行い、数字に基づいた意思決定を行っています。その一方で、集計後の数値のズレやドメイン固有のデータの品質管理など、活用が進んだ企業ならではの課題というのも表面化してくるようになってきました。 オンライン広告運用においては、投下した費用など配信実績のレポーティング、広告媒体へのデータ送信などのいわゆるELTを安定的に回す仕組みが必要になりますが、処理の自動化やデータの品質まで求められるようになると、「データが抽出できる」だけでは限界が見えてきていました。そこで今回、マーケター自身がデータを管理する立場に

    マーケター自身がデータを管理するために、広告運用にdbtを導入した経緯と効果 - MonotaRO Tech Blog
    t_koots
    t_koots 2023/02/15
  • データエンジニア道の俺のバイブル

    先人の知恵に学ぶ データエンジニア道で、当に良かった!読み物を、不定期に追記していく。 A Beginner’s Guide to Data Engineering — Part I データエンジニアをこれから始める人に、必ず薦める記事。データエンジニアの基を学べるかつ、どういう世界に広がっていくのかまで、一気に学べるのでとても良い。 Functional Data Engineering — a modern paradigm for batch data processing 関数型パラダイムを使ったデータパイプラインの構築方法。これを初めて読んだ時の衝撃は今でも忘れないし、フルスクラッチからdbtを使ったデータパイプラインになっても健在な設計手法。 Engineers Shouldn’t Write ETL: A Guide to Building a High Function

    データエンジニア道の俺のバイブル
    t_koots
    t_koots 2023/01/03
  • “わずか10分”で「負荷試験環境」の構築が可能に クイックにチェックできる状況をサクッと作れる、Linode活用法

    StackScript、k8s、Terraformを使って、Linodeで負荷試験環境を自動で構築する方法について、アカマイ・テクノロジーズの岡英輝氏と佐藤裕行氏が、実際のデモを交えて紹介しました。後半はLinodeを使った負荷試験のデモとQ&Aについて。前半はこちら。 Linodeのメリットが得られやすいユースケースとは? 佐藤裕行氏(以下、佐藤):後半は、Linodeのユースケースについて、少し岡さんと話を進めていきたいと思うんですけども。今回はアプリケーションの負荷試験にフォーカスして、デモなども見せていきます。 その前に、負荷試験以外のサービスでいうと、こういうのに向いているとか、こういうのに向いてそうなところって、なにか感覚として持ってたりしますか? 岡英輝氏(以下、岡):前半に続いて、ちょっと転送量コストの話ばっかりになってしまうんですけど、やはりアウトバウンド転送量を

    “わずか10分”で「負荷試験環境」の構築が可能に クイックにチェックできる状況をサクッと作れる、Linode活用法
    t_koots
    t_koots 2022/12/29
  • Railsでpumaやsidekiqのスレッド数とコネクションプールの数ってどうやって決めるんですか | 働くひとと組織の健康を創る iCARE

    この記事はiCARE Dev Advent Calendar 2022 第1レーン24日目の記事です。 Railsの基原則の一つに「メニューはおまかせ」があり、デフォルトで設定を良い感じにしてくれています。しかし、当に自分のユースケースでも問題ない設定だと自信を持って言うためには、なぜこの設定になっているのかの背景知識が必要になります。例えばrails newをするとpumaのスレッド数はデフォルト5、データベースのコネクションプール数も5になっています。これは自分のユースケースで適切な値なのでしょうか?どういうときにいくつに設定するのが正しいのでしょうか? pumaのスレッド数をどうやって決めるのか pumaRailsのデフォルトのアプリケーションサーバであり、複数プロセス、複数スレッドで動くアプリケーションサーバです。この記事を執筆している時点で最も利用率の高いアプリケーションサ

    Railsでpumaやsidekiqのスレッド数とコネクションプールの数ってどうやって決めるんですか | 働くひとと組織の健康を創る iCARE
    t_koots
    t_koots 2022/12/24
  • 私がやった Amazon S3 コストカット全ステップ | CyberAgent Developers Blog

    記事は CyberAgent Advent Calendar 2022 23日目の記事です。 「節約は固定費から。」 こんにちは、しゅん(@MxShun)です。 今年11月に中途入社、AI事業部オペレーションテクノロジーに仲間入りしました。 今回は、年間にして 1,200 万円削減 した Amazon S3 のコストカット全ステップ を紹介します。 目次 オペレーションテクノロジー AWSコストの見直し S3コスト対象 S3コスト分析 1. ストレージ容量の削減 2. ストレージクラスの見直し まとめ オペレーションテクノロジー 私がジョインしたオペレーションテクノロジーは、 サイバーエージェント 連結売上高の53%(2022年通期決算時点)を占めるインターネット広告事業売上を最大化する システム開発 大規模インターネット広告運用を可能にする 社内システム開発 の役割を担っています。

    私がやった Amazon S3 コストカット全ステップ | CyberAgent Developers Blog
    t_koots
    t_koots 2022/12/24
  • [速報]AWS上で開発環境一式、フレームワーク、初期コード、IDE、ビルド環境、CI/CDなど提供する「Amazon CodeCatalyst」発表。AWS re:Invent 2022

    [速報]AWS上で開発環境一式、フレームワーク、初期コード、IDE、ビルド環境、CI/CDなど提供する「Amazon CodeCatalyst」発表。AWS re:Invent 2022 Amazon Web Services(AWS)は米ラスベガスで開催中の年次イベント「AWS re:Invent 2022」で、AWS上で開発チームのための環境一式を提供する「Amazon CodeCatalyst」を発表しました。 Amazon.com VP兼CTOのWerner Vogels博士。 開発周りの環境整備がどんどん重くなっており、これが開発のスピードを落としていると指摘。

    [速報]AWS上で開発環境一式、フレームワーク、初期コード、IDE、ビルド環境、CI/CDなど提供する「Amazon CodeCatalyst」発表。AWS re:Invent 2022
    t_koots
    t_koots 2022/12/02
  • 【WordPress】 受託開発におけるハイブリッドテーマ開発 - Qiita

    はじめに この記事では、受託開発において WordPress テーマを制作する時に、ハイブリッドテーマで構築するための設計・アプローチを提案するものです。 記事タイトルに「受託開発における」と含めた理由は、WordPress テーマディレクトリに公開したり、不特定多数に配布するようなテーマにおいては、この記事のアプローチが必ずしもベストな方法ではないと考えるからです。あくまでも、特定の WordPress サイト (特定のクライアント・エンドユーザー) 向けに最適化したテーマを制作するというシチュエーションにおいての話となります。 ハイブリッドテーマとは ? まず、ハイブリッドテーマ含め、どのようなテーマの形態が存在しているかを、WP Tavern の記事 (Block, FSE, Hybrid, Universal? What Do We Call These New WordPress

    【WordPress】 受託開発におけるハイブリッドテーマ開発 - Qiita
    t_koots
    t_koots 2022/11/28
  • フルスタックのチャットアプリケーションをAWSとNext.jsで構築する | Amazon Web Services

    Amazon Web Services ブログ フルスタックのチャットアプリケーションをAWSNext.jsで構築する モダンなチャットアプリはリッチな機能を必要とします。これらの機能はファイルストレージ・リアルタイムの更新、そしてクライアントとサーバーの両方からデータを取得する能力が必要です。 従来、これは多くのサードパーティサービスをつなぎ合わせるか、カスタムソリューションの作成に開発時間を費やすことを意味していました。そして、この方法では市場投入までの時間が遅くなり、複数の障害点が発生します。 チャットアプリに必要な機能と、AWS が従来の問題点をどのように解決しているかを紹介するために、我々はリアルタイムチャットアプリケーションのサンプルを更新しました。このバージョンは、ローカルと AWS の両方でアプリケーションを完全に管理・制御することがいかに簡単かを強調するために再設計され

    フルスタックのチャットアプリケーションをAWSとNext.jsで構築する | Amazon Web Services
    t_koots
    t_koots 2022/11/25
  • Layout patterns  |  Patterns  |  web.dev

    Stay organized with collections Save and categorize content based on your preferences. Layout patterns built using modern CSS APIs to help you build common interfaces such as cards, dynamic grid areas, and full-page layouts. Pc0 �U p\g �U We want to help you build beautiful, accessible, fast, and secure websites that work cross-browser, and for all of your users. This site is our home for content

    t_koots
    t_koots 2022/10/11
  • Web 技術解体新書「第二章 Cache 解体新書」リリース

    Web 技術解体新書「第二章 Cache 解体新書」リリース Intro 「Web 技術解体新書(Web Anatomia)」の第二章として「Cache 解体新書(Cache Anatomia)」をリリースしました。 これで予定している八章のうち二章が終わりました。 第一章: Origin 解体新書 第二章: Cache 解体新書 Cache 解体新書 以下の Response Header Field がどういう意味を持つか正確に説明できますか? おそらく多くの Web 開発者が一度は見たことがあり、これを「1 時間キャッシュする」という意味で指定している人もおおいでしょう。 では、どこから 1 時間で、 1 時間経ったらなにが起こるのか、これが Response でなく Request に付与されたらどう変わるのか、きちんと把握できていますか? そもそも、一般的にキャッシュ機構における

    Web 技術解体新書「第二章 Cache 解体新書」リリース
    t_koots
    t_koots 2022/06/10
  • 本当に実践的なデザインドキュメントの書き方 第1回:なぜ渡されたワイヤーフレームは分かりにくいのか? | アドビUX道場 #UXDojo

    当に実践的なデザインドキュメントの書き方 第1回:なぜ渡されたワイヤーフレームは分かりにくいのか? | アドビUX道場 #UXDojo 連載 当に実践的なデザインドキュメントの書き方 いきなり渡されたワイヤーフレームをデザインするよう言われて戸惑った経験は、デザイナーなら誰でもあるのではないでしょうか?これはディレクターとデザイナーの分業という状況に起因する問題ですが、分業が一般的なのにはもちろん理由があります。そこで、この連載では、現在の分業体制を前提に、情報設計に関わる『デザインドキュメント』をきちんと制作することで、この問題を解決する手段を探ります。 第1回は、受託のWeb制作における一般的な分業体制を詳細に分析し、よりデザイナーが貢献できる役割分担について考えていきます。 なかなかはじめられないUXデザイン これはGoogleトレンドで、「Webディレクター」「Webデザイナー

    本当に実践的なデザインドキュメントの書き方 第1回:なぜ渡されたワイヤーフレームは分かりにくいのか? | アドビUX道場 #UXDojo
    t_koots
    t_koots 2022/05/13
  • [UA→GA4] Goals migration tool - Analytics Help

    Automatically migrate your Universal Analytics goals to Google Analytics 4 conversion events The goals migration tool allows you to quickly recreate eligible goals from your connected Universal Analytics property as conversion events in your Google Analytics 4 property. In this article: In the Property column, select the Google Analytics 4 property that currently collects data for your website. In

    t_koots
    t_koots 2022/04/15
  • 『これからSEOをはじめる人に』

    今日はいつもと少し毛色の違う記事を書いてみたいと思います。 社内からリクエストがあったのと、4月から新しくSEOを担当することになった方もいらっしゃると思うので、SEOを業務にするにあたりまずやっておいたほうが良いこと、心がけることなどを気の向くままに書いてみたいと思います。 なお、あくまで個人的な意見ですので別の考え方は当然あってしかるべきだと思います。 SEO教育というところは苦労しているところが多いと思いますので議論のきっかけになったら嬉しいです。 まずは SEO担当者になったらまずやる3つのこと です。 自分の担当するサイトやプロダクトのことをよく知る一緒に働く人を知るGoogleの考え方を知るをおすすめします。 自分の担当するサイトやプロダクトのことをよく知る SEO担当者になったら担当するウェブサイト・プロダクトのことをよく知る必要があります。 実際にすみずみまで見て使ってみ

    『これからSEOをはじめる人に』
    t_koots
    t_koots 2022/04/13
  • 検索エンジン最適化(SEO)スターター ガイド

    フィードバックを送信 コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 検索エンジン最適化(SEO)スターター ガイド ウェブサイトの構築時には、ユーザーを念頭に置き、見つけやすく閲覧しやすいサイトになるよう工夫するのが普通です。検索エンジンもユーザーの一種ですが、コンテンツを見つけるためにユーザーの手助けをします。SEO(検索エンジン最適化)では、検索エンジンにコンテンツを理解させることで、ユーザーが検索エンジンからサイトを見つけてアクセスすべきかどうかを判断できるようにします。 検索の基事項では、ウェブサイトが Google 検索の表示対象となるために特に重要となる事項を説明しています。Google のインデックスに確実に登録される方法はありませんが、検索の基事項に沿って作成したサイトは Google の検索結果に表示されやすくなります。SEO とは

    検索エンジン最適化(SEO)スターター ガイド
    t_koots
    t_koots 2022/04/12
  • “ココがすごいよ! GA4 ” 解析プロ4人が語る「Googleアナリティクス4」の便利・不便なポイント | インタビュー

    “ココがすごいよ! GA4 ” 解析プロ4人が語る「Googleアナリティクス4」の便利・不便なポイント | インタビュー
    t_koots
    t_koots 2022/04/07
  • JSON Schema で複雑な仕様の入力フォームの実装に立ち向かった話

    Ruby on Rails を用いたシステム上で入力フォームを実現する際、Rails が提供しているフォームヘルパーを利用した実装や、ReactVue によるコンポーネントの自前での実装が一般的に行われます。 ここで、職業で学生を選択した場合は学校名と学年、会社員を選択した場合は役職と年収を入力する...といった、条件分岐が大量に生まれる入力フォームを想像しましょう。 一般的な実装手法では、あるフォームの入力値が他のフォームに影響を与えるような、複雑で動的な入力フォームの実現をするために、大量の if 文を書く必要があります。 また、ユーザから送信された入力値の正しさをバリデーションするために、バックエンド側に同様の if 文を大量に書く必要が出てきます。 そこで私は、複雑な仕様の入力フォームの実装のための JSON Schema 活用方法および事例について紹介します。入力フォームの

    JSON Schema で複雑な仕様の入力フォームの実装に立ち向かった話
    t_koots
    t_koots 2021/10/23