サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone18 Pro
blog.flinters.co.jp
お世話になっております。FLINTERSでデータエンジニアをしている堀と申します。今回の投稿はFLINTERSブログ祭りの記事です。テーマは #データ分析 #SQL #技術 です。 本日は爆速分析SQLエンジンのDuckDBを紹介したいです。 そもそも https://duckdb.org/ brew install duckdb ポイント インストールかんたん パッと起動して、さまざまなデータソースにSQL分析ができる 豊富なインプット方法、アウトプット方法 ローカルのデータファイル(CSV, JSON, parquet, Excel) http(s)でアクセスできるデータファイル S3/GCS/Azure Blob Storage上のデータファイル PostgreSQL MySQL また、DuckDBは各言語のクライアントライブラリでもある。いろいろあるよ SQLの実行が爆速 なんでD
こんにちは。FLINTERS エンジニアの早瀬です。 この記事はFLINTERS設立10周年ブログリレーの90日目の記事になります。 技術者の皆さん、日々の業務で技術メモは活用していますか? 今回ObsidianとZettelkastenを用いて、メモの取り方を見直しました。この記事では、そこで実践した方法とやってみた感想などを記載します。 目次 目次 現状のメモの課題 用語の説明 Zettelkasten Obsidian 実践例 感想 良かった点 まとめが容易になった 使えるメモがわかりやすい 苦労した点 メモ作成にコストが掛かる まとめ 参考資料 現状のメモの課題 日々のタスクやメモをObsidianのDaily Notesで記録しています。 この方法は物事を理解したりする上で有効ですが、次のような課題を感じています。 メモの再利用性が低い 後から見返す際の理解に時間がかかる 用語の
こんにちは、データマネジメント部でデータエンジニアをしている井山です。 この記事は10周年記念として133日間ブログを書き続けるチャレンジの15日目の投稿になります。 今回は、現在FLINTERSデータチームで行っているデータ基盤移行PRJ(実施中)についてのお話をしたいと思います。 はじめに データ基盤の現状 移行の背景 発生していた問題点 暫定的な対策 移管対応でやったこと等 まとめ Snowflakeにしてよかった点 リソース問題はほぼ解消 格納できるデータ量も無制限なのでライフサイクルも廃止(全期間のデータを格納できる) コスト的な部分でのメリット DWHの構成管理ができるように(一部例外はあるが) メタデータ関連がかなり強力 副次的にいらない・使っていないデータソースとかを排除する動きが活発に 困ったこと・苦戦したこと Digdag WFからのSnowflake接続 Treasu
こんにちは。FLINTERSのカレンダー | Advent Calendar 2022 - Qiita 24日目を担当します、宮下です。 はじめに 弊社が開発を手掛けているマンガアプリGANMA!ではサービスの改善やトラブルシューティングなどのためにGoogleアナリティクス4(GA4)を利用してユーザーの行動履歴を収集しています。 特にiOS, Android向けのアプリではGoogle Analytics for Firebaseを利用してイベントを送信しています。 (以下、Googleアナリティクス4とGoogle Analytics for Firebaseを特に区別せずGA4と呼びます。) GA4では自動的に収集されるイベントの他に、独自のイベントをカスタムイベントによって計測することが出来ます。 例えば、GANMA!ではマンガの原稿ページを閲覧した・広告をタップした・プレミアム
こんにちは!@kakeyangです! 久しぶりの投稿です。 なぜなら、、、沖縄の八重山諸島に旅行に行ってましたのです! 楽しかったなぁ(遠い目) 今回は、開発で経験した通信障害の原因とその対策を公開します。 原因がLinuxカーネルの設定だったので、結構苦労しました。。。 障害概要 異なるネットワーク内(片方は弊社ネットワーク)の物理サーバ間(弊社が受信側)でインターネット越しにソケット通信を行う。 毎回ではないが1割程度の割合で、送信側でconnection timeoutを観測。 受信側にはapacheのログが残っていなかったので、webサーバには届いていない。 送信側でtracerouteすると、確かに弊社ネットワーク内には入っている。 弊社ネットワーク内のF/Wから物理サーバの間のどこかで通信が途絶えているっぽい! というところまではすぐに判明しました。 調査内容 データセンターと
こんにちは、清水(@_smzst)です。直近の業務でマルチテナントな DB でアプリケーションでのスイッチロール機能を実現するために Amazon Cognito や表題にある Row Level Security について技術検証や設計検討を行っていました。 今回はこの Row Level Security について PostgreSQL での例を挙げて挙動を確認しながら、実際に導入するにあたって必要な知識や注意点までを網羅します。本記事が安全で堅牢なアプリケーション構築の一助となれば幸いです。 1. マルチテナントとは 2. Row Level Security とは 3. 実際に試してみる 3-1. 実現するための SQL 3-2. RLS 有効化前 3-3. RLS 有効化後 4. 補足 4-1. クエリのパフォーマンスについて 4-2. ユーザーとロールの管理について 4-3.
こんにちは、エンジニアマネージャーの堀越です。 ちょっと前、TLで割と盛り上がっていたこちらの書籍をポチり読んでみました。いいですよこの本!! gihyo.jp こちらの書籍の第3章に Beyond the Twelve-Factor App なるものの紹介があり、色々調べて考察した結果を社内勉強会で発表したのでブログにも書き起こしておきます。 Beyond the Twelve-Factor App とは? Pivotalという会社が提唱したアプリケーション開発のためのベストプラクティス集です。 実は元ネタに Heroku が考案したThe Twelve-Factor App があるのですがこちらは内容も考え方も古く、Beyond の方はクラウドを使う点での考慮点が含まれているのがポイントです。 以下のリンクからE-Mailを登録するとPDFがダウンロードできます。 tanzu.vmwa
こんにちは。生田です。 この記事は FLINTERSのカレンダー | Advent Calendar 2022 - Qiita の21日目の記事です。 今回は、GANMA! の管理画面で Create React App から Vite へ移行した話をご紹介します。 背景 GANMA! の管理画面は React で書かれており、プロジェクトはCreate React Appでセットアップされていました。 Create React App は React で Web アプリ作るときにビルドツールやリントツールなどのセットアップを1コマンドでやってくれる便利なツールです。 HMR なんかも何も設定せずにnpm startをすればよしなに動いてくれます。 機能も多くしばらくは困ることなく使っていました。 しかし、ある程度の期間利用しているととある不満が出てきました。 それは開発サーバーの起動が遅
こんにちは。河内です。 Kubernates の manifest や CI の設定などなど、仕事の中で YAMLを書く機会は結構あるかと思います。 YAML にも若干の構造化機能があるものの限定的であり、例えばCIで複雑なジョブ構成を定義しようとすると、巻物のように長いYAMLファイルができたりします。 長いYAMLファイルはメンテナンス性が悪く、扱っていてなかなか辛いものがあります。 一方 jsonnet は JSON を吐き出せる data templating language です。 jsonnet.org ここでは、お手元にある長い YAML の代わりに jsonnet を使うことで、快適な生活を手に入れるための移行パスについて説明します。 JSON は両方のサブセット 移行でのポイントが2点あります。 ポイント1: JSON は jsonnet とみなせる ポイント2: JS
こんにちは。FLINTERSでTech Adviserをしています、OE(@OE_uia)です。 Scala 3.0.0が2021年5月14日にリリースされたことを受けて、いつアップデートするか検討中の方も多いかと思います。 実際、今FLINTERSではScala製プロダクトのScala 3.0.0へのバージョンアップを試みており、今回はその進捗をブログ記事化しました。 TL;DR Play Frameworkやplay-jsonを利用したプロジェクトでも、一部はScala 3.0.0にアップデート出来ることを確認しました。 Scala 3化を完遂するにはやや時期尚早な感があるものの、今回試してみてScala 2.13とScala 3の互換性に関する知見がたまり、OSSへの貢献もできました。 scala3-migrate-pluginで依存しているライブラリのScala 3対応状況について
こんにちは。河内です。 Logica はデータ操作のための論理プログラミング言語で、Google のオープンソースプロダクトです。 今年の4月に Google Open Source Blog でも紹介されています。 opensource.googleblog.com Logica のターゲットユーザとして次の3つの人物像が挙げられています。 論理プログラミングをすでにやっていて、より計算力が欲しい人 SQLを使っていて、リーダビリティに満足していない人 論理プログラミングを学びたいと思っていて、ビッグデータにそれを適用したい人 この分類でいうと私は2番目の「SQLに満足していない人」です。長いこと付き合ってきていますが、CTEを多数含むある程度長いクエリになると、どうしても読み解くのに時間がかかるんですよね。 logica では readability が上がるということで期待が高まりま
こんにちは。CTOの河内です。 多くのプロジェクトがスタート時はそうである通り、我々のプロジェクトもAPI仕様がありませんでした。 最初は規模が小さく問題として認識されていなかったのですが、規模が大きくなり、また開発者の入れ替わりを経験するごとに、「この API って何返してくるの?」という問いに答えられる人が段々といなくなってきました。 「ソースが仕様だ」とサーバの実装を読めばもちろん答えられるのですが、ソースコードを読み解く時間がかかるため効率的ではありません。 また、サーバ実装が唯一の情報源となるため、ロジックが何かおかしいと感じても、それが仕様なのかバグなのか判断できない状態でした。 API仕様を先に定義し、通信上の疑問にはAPI仕様で答えられるようにしたかったのです。 これは一般的な課題で、日本CTO協会が2019年12月に公開した DX Criteria DX Criteria
こんにちは。中途6ヶ月の生田です。 現在は GANMA! というサービスの管理画面開発でWebフロントエンドを担当しています。 今回は実業務で直面した以下の課題について、キャンプ1期間にどう対処していったかをご紹介します。 TypeScriptでエラー処理をいい感じにしたいが例外機構によってthrowされるオブジェクトがanyで辛いのでEither2のようなものを返り値として対処してみる ◇ 目次 ◇ 目次 ◇ 前提 ◇ 課題 TypeScriptではcatch時におけるthrowされたデータはany ◇ 方針 説明用設定 案1. 呼び出す側で型を指定する 案2. throwableな処理をラップしてEitherのような返り値で表現する ◇ 実装編 1. TypeScriptでEitherのようなものを実現する 1-a. Result<T, U>のように書ける 1-b. Result型は利
こんにちは。菅野です。 近頃はビットコインなどの暗号通貨の話題を目にすることが多くなっていますよね。 ブロックチェーンという言葉を聞いたことがないエンジニアはいないと思います。 もうブロックチェーンを使ったDApp1のひとつやふたつくらいは作っているのではないでしょうか。 ところでDAppとは何ですか? ちなみに私は今年になって初めてそれを知りました。 分散型アプリケーションDApp DAppとはDecentralized Applicationの略で、サービスを提供する管理サーバーがある普通のアプリとは違う、非中央集権型のアプリです。 なぜ今DAppなのかというと、高機能なスマートコントラクトを実装したEthereum等が登場したことに関係しています。スマートコントラクトを利用することで簡単にDAppを作成できて、お金のやり取りまで簡単に組み込めるためDAppの数が増えています。 プラン
こんにちは、中途三年目の堀越です。 近頃、Scalaのコミュニティにおいて Functional Programming による実装テクニックを紹介する記事や発表を見たり聞いたりすることは珍しいことではなくなってきました。弊社にもたくさんの関数型ニキ*1が在籍しており、わたしも日々影響を受けています。 ということで、本日はわたしが所属するチームでの日々の Scala 開発における取組みや戦略をサンプルコード*2と合わせて紹介していきます。 高カインド型によるEffect型の抽象化 私達はドメイン駆動設計を実践しています。なのでドメインロジックはドメインの関心事に集中できるのが理想です。ドメイン層を抽象化し、特定の実行環境や技術的関心事に依存しない戦略として 高カインド型 を用いてEffect型を抽象化します。 インターフェース定義 例えば Repository のインターフェイスのは以下の
こんにちは。セプテーニ・オリジナルの池田です。 先日サイバーエージェントさん、ビズリーチさん、チャットワークさん、そしてセプテーニ・オリジナルの4社で、「Scala秋祭り」を開催しました!! 【増席】Scala秋祭り - connpass 今年6月に開催されたScalaMatsuri2019にて、各社ブースが近く一緒にイベントしましょうとのことで話しをしまして、今回開催する運びになりました。 ▲ 当日の様子 ▲ Scala秋祭りケータリング Scala秋祭りでは、各社からScalaに関わる発表、LT、懇親会を行い今回100人規模のイベントになりました。 発表テーマはこちらです。 各社からの発表 Scala における継続モナドの実装と活用 From Tagless-Final to Typed-Final: Program Transformations in the Final Style
あけましておめでとうございます。河内です。 数ヶ月前に aws-vault を使い始めて安全の高まりを感じるので紹介します。 AWSのサービス上では IAM Role をできるだけ使ってアクセスキーを使わないようにしていますが、ローカルでの開発時にIAMのアクセスキーを利用することはあります。 アクセスキーが漏れると困ったことになります。 本番環境で利用している AWS アカウントで漏れると、付与している権限次第では機密情報が漏洩したりサービスが壊される可能性があります。 また開発環境としてのみ利用しているAWSアカウントであっても、ビットコインのマイニングなどで容赦なくリソースを消費され高額な請求が来たりする可能性ががあります。 そのようなことが起きないようにアクセスキーは安全に管理する必要があります。 通常はAWS SDK のデフォルト参照先である ~/.aws/credentials
このページを最初にブックマークしてみませんか?
『blog.flinters.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く