Data Engineering
-
Embulk#Data Engineering プラグイン機構を持つOSSのバルクデータローダー(公式には "Open-source Pluggable Bulk Data Loader")。ETL のうち Extract / Load のバッチ転送を担う input / output プラグインの組み合わせで、データベース・ストレージ・ファイル形式・クラウドサービス間の転送を構成する 大規模データセット向けの並列実行、入力ファイル形式の自動推定、all-or-nothing のトランザクション制御を備える https://www.embulk.org/
-
AtlasとArgoCDでDBマイグレーションの仕組みを構築してみた#Data Engineering AtlasをベースとしてマイグレーションDockerイメージを、GitHub Actionsでビルド&パブリッシュ、Kubernetes Job上のArgo CDでのマイグレーションリリースまでを自動化する記事 https://tech-blog.rakus.co.jp/entry/20250526/dbmigration
-
OLAPOnline Analytics Processing #Data Engineering データ分析を目的として多次元データを扱うシステムに対して用いられる言葉
-
DuckDB#Data Engineering ホストプロセス内に完全に埋め込まれて動作する、分析(OLAP)向けのリレーショナル DBMS。サーバーの導入が不要で、プロセス内で動くことによる高速なデータ受け渡しが特徴(Python では pandas のデータをコピーせずに直接クエリできる) columnar-vectorized クエリ実行エンジンを採用し、値のバッチ処理で分析クエリを高速化する 外部依存なしでビルドでき、Linux / macOS / Windows / ARM / WASM で動作するポータビリティを持つ。MIT ライセンス C / C++ / Go / Python / R / Rust / Java / Node.js などの API を提供する ACID・複雑な SQL・レイクハウス形式対応を備え、柔軟な拡張機構で新しいデータ型や関数を追加できる https://duckdb.org/why_duckdb
-
レプリケーション#Data Engineering 書き込みまたは読み取りをリーダー、読み取りをフォロワーで行われ、リーダーへの書き込みがフォロワーに伝播される仕組みをレプリケーションと呼ぶ。 レプリケーションの方法として ステートメントベース write-aheadログ 等がある。 ステートメントベースはSQLをそのまま転送する形になるため副作用を持つ関数が返す結果にズレが生じる方法で、MySQL5.1以前に採用されていた。 write-aheadログはPostgreSQL,Oracleで使用されているが、ログが低レベルに記述されているため詳細実装と密になってしまう。 レプリケーションのトポロジーとしていくつかのパターンがある
-
メッセージブローカー#Data Engineering イベントストリーム処理において、Pub/Subの間に配置されイベントをキューイングする役割。 基本としてイベントをコンシューマーと1対1でやりとりし処理が完了したらイベントが削除される実装がある。 対しログベースのメッセージキューはコンシューマーと1対Nでやり取りし古いイベントのリプレイも可能である。 https://aws.amazon.com/jp/message-queue/
-
カーディナリティ#Data Engineering あるカラムの値の集合の中に重複する値がどのくらいあるかの度合い。低いと重複が多く高いと重複が少ない。
-
Apache Avro#Data Engineering データシリアライゼーションシステム(公式には "a data serialization system"。"the leading serialization format for record data, and first choice for streaming data pipelines" と自己記述される)。JVM 系・Python・C / C++ / C#・Ruby・Rust・JavaScript など多言語の実装を持つ バイナリエンコードは型情報もフィールド名も含まず、解釈は完全にスキーマに依存する。reader が writer と異なるスキーマで読める schema resolution 規則がスキーマ進化("excellent schema evolution")を支える コンテナファイル(Object Container File)はヘッダに格納オブジェクトのスキーマを JSON で必須同梱するため、ファイル単体で自己記述的になる https://avro.apache.org/
-
CloudNativePG#Cloud Native #Data Engineering Kubernetes上でPostgreSQLクラスタのライフサイクルを管理するOperator プライマリ/スタンバイ構成によるストリーミングレプリケーションで高可用性を実現 外部HAツール(Patroni等)に依存せずKubernetes APIと直接統合 CNCF sandbox project https://cloudnative-pg.io/
-
etcd
-
GraphQL
-
BigQuery#Data Engineering Google Cloud上で提供されるフルマネージドのデータプラットフォーム(公式には "a fully managed, AI-ready data platform")。機械学習・検索・地理空間分析・BI などの機能を組み込みで持ち、サーバーレスアーキテクチャによりインフラ管理なしで SQL や Python から分析できる ストレージとコンピュートが分離されており、ペタビットスケールのネットワークで接続された 2 層が互いのパフォーマンスに影響を与えず独立にリソースを割り当てる ANSI 標準 SQL(ISO/IEC 9075 サポート)と Python API(BigQuery DataFrames)を備え、コンソール・bq CLI・クライアントライブラリ・ODBC/JDBC ドライバから利用できる ストレージは分析クエリに最適化された列指向フォーマットで、自動的にレプリケーションされる オープンテーブルフォーマットとして Apache Iceberg・Delta Lake・Apache Hudi をサポートし、顧客所有の Cloud Storage バケット上のデータも扱える https://docs.cloud.google.com/bigquery/docs/introduction
-
マルチリーダーレプリケーション#Data Engineering レプリケーションの種別の一つ 複数のデータセンターにリーダーが存在する。リアルタイムの同時編集がイメージに近い。書き込みの衝突があった際に最終的に同じ値に収束させるような方法が取られる
-
DuckDB/Avro extension#Data Engineering DuckDBでApache Avroファイルの読み取りを可能にする拡張。2024 年後半にコミュニティ拡張として登場し、2025 年初頭にコア拡張へ昇格した read_avro 関数で読み取る。ローカル・HTTP・S3 系のソースや、glob・ファイルリストによる複数ファイル指定に対応する 再帰型定義を除くすべての Avro 型を DuckDB の型へ変換できる。union と null の組み合わせは非 null 型へ自動的に簡約される ドキュメント記載の制限として、単一ファイル内の並列読み取り、プロジェクション/フィルタのプッシュダウン、外部 Avro スキーマファイルの指定は未対応 https://duckdb.org/docs/current/core_extensions/avro
-
DuckDB/Iceberg extension#Data Engineering DuckDBにApache Icebergオープンテーブルフォーマットのサポートを実装する拡張。初回使用時に自動でインストール・ロードされる 2 つのモードを持つ: テーブルのメタデータを直接指す読み取り専用アクセス(カタログ不要)と、Iceberg REST catalog への ATTACH によるカタログ管理テーブルアクセス(フル機能) 対応カタログとして Amazon S3 Tables・AWS Glue・Cloudflare R2・Polaris・Lakekeeper・BigLake が挙げられ、オブジェクトストレージへは httpfs / azure 拡張と連携してアクセスする v1.5.3(2026-05)で MERGE INTO・ALTER TABLE・パーティション変換・Iceberg V3 サポートが追加された https://duckdb.org/docs/current/core_extensions/iceberg/overview
-
DuckDB/MySQL extension#Data Engineering DuckDBから稼働中のMySQLインスタンスへ直接データを読み書きするための拡張。ATTACH に key-value 形式の接続文字列(host / user / port / database など)を渡して接続する INSERT / UPDATE / DELETE / CREATE TABLE などの書き込み操作に対応し、READ_ONLY オプションで読み取り専用にもできる CREATE TABLE ... AS FROM <db>.<table> で MySQL テーブルを DuckDB 側へ複製でき、COPY ステートメントでParquet形式へ直接エクスポートできる 認証情報は環境変数(MYSQL_HOST など)や secrets 機能で管理できる MySQL 側の DDL はトランザクション非対応。別接続でスキーマ変更した場合は mysql_clear_cache 関数でキャッシュを更新する https://duckdb.org/docs/current/core_extensions/mysql
-
Atlas#Data Engineering #Continuous Integration #Continuous Delivery #Documentation データベーススキーマの最新の状態をコードとして管理し、変更時の差分を元に自動でマイグレーションクエリを生成してくれるようなDevOpsツール PostgreSQLやMySQLといった代表的なデータベース管理システムに対応している Atlas CloudによってWeb上での可視化も可能 Ariga社によって開発されている https://atlasgo.io/docs
-
Google Cloud/Cloud SQL#Data Engineering Google Cloudが提供するフルマネージドなリレーショナルデータベースサービス MySQL、PostgreSQL、SQL Serverに対応し、バックアップ・レプリケーション・高可用性構成が組み込みで提供される Cloud SQL | Google Cloud
-
MySQL#Data Engineering 実務において主流の一つであるリレーショナルデータベース管理システム MySQL :: MySQL 8.0 リファレンスマニュアル :: 1.2.1 MySQL とは
-
Apache/Kafka#Data Engineering イベントストリーミングプラットフォームのメッセージブローカーOSS イベントのPub/Sub、ストリーミングの保持を行う https://kafka.apache.org/documentation/#intro_streaming
-
ORMObject-Relational Mapping #Data Engineering オブジェクト指向プログラミングアプリケーションとリレーショナルデータベース間のレイヤを抽象化するプロセス
-
ETLExtract transform load #Data Engineering ETL とは? - 抽出、変換、ロードの説明 - AWS
-
DevOps capabilities/Database change management#Data Engineering DevOps capabilitiesの1つ、Fast Flowに分類される DORA | Capabilities: Database change management
-
TiDB
-
k1LoW/tbls#Data Engineering #Documentation Go言語で書かれたデータベースドキュメント化ツール データベーススキーマを自動的にMarkdown形式で記録し、CI/CDパイプラインに統合可能 PostgreSQL、MySQL、BigQuery、Snowflakeなど多数のデータベースに対応し、差分検出(diff)、品質チェック(lint)、ドキュメント網羅率測定(coverage)などの機能を提供 https://github.com/k1LoW/tbls
-
トランザクション分離レベル#Data Engineering ACIDのうち、I(Isolation)について言及するような分離性のレベル。 RDBMS間で共通して4つの分離レベルがあるが、分離レベルの命名が異なるケースがあり曖昧になっている。 Read Uncommitted コミットされていない未確定のデータを読み取るダーティリードが発生する Read Committed ダーティリード、ダーティライトが生じない Snapshot Isolation OracleではSERIALIZABLE、PostgreSQLやMySQLではRepeatable Readと呼ばれるため曖昧 読み取りスキュー(nonrepeatable read)が生じない、読み取りはロックを取らず常にトランザクション開始時のスナップショットを参照する スナップショットとして複数のバージョンを保持するためMVCC(multi-version concurrency controll)の手法が用いられる Serializable 書き込みスキュー(ファントム)が生じない、複数のレコードを跨いだ一貫性を保証する ユニーク制約によって書き込みスキューを防止できない際に必要となる 全てのトランザクションが直列で実行されるように振る舞うことで直列化可能と呼ばれる
-
Valkey#Data Engineering Redis OSSからフォークしたBSDライセンスのキーバリュー型インメモリデータストア Redis OSSとの互換性を維持 Linux Foundationがホストする https://valkey.io/
-
Dynamoスタイル#Data Engineering DynamoDBによって流行したリーダーレスレプリケーションを実装したデータストアに用いられるスタイル名
-
レポーティングデータベース#Data Engineering Martin Fowlerが示したパターンで、アプリケーションのドメインモデルに対応するテーブルとは別にレポート目的の中間テーブルを用意することで、レポートの関心を分離してテーブルに変更を加えることができる。 https://bliki-ja.github.io/ReportingDatabase
-
go-redis#Programming #Data Engineering Go用のRedis公式クライアントライブラリ Redis Cluster、Redis Sentinel、Redis Streamsをサポート 自動コネクションプーリングを内蔵 Pub/Sub、パイプライン、トランザクションに対応 https://github.com/redis/go-redis
-
Embulk into the maintenance mode#Data Engineering Embulk 公式によるメンテナンスモード移行のアナウンス(2025-11-10)。「積極的なプロジェクト管理ができない状態」を宣言し、GitHub 組織を継続参加意思のある最小限のメンバーに縮小した ユーザーへの影響: PR を提出してもレビュー・マージされない可能性がある。将来の Java バージョン対応や Jackson 2→3 のような依存関係更新も現実的ではないとされる 背景: アクティブなメンテナー不在が約 6 ヶ月続き、セキュリティ報告への迅速な対応が困難な状況。RubyGems のセキュリティ事件を教訓に、問題が生じる前に明確なガバナンスを確立する判断に至った https://www.embulk.org/articles/2025/11/10/embulk-into-the-maintenance-mode.html
-
OPTIMIZE TABLE#Data Engineering MySQLにおいてテーブルインデックスを再編成し最適化する命令 MySQL :: MySQL 8.0 リファレンスマニュアル :: 13.7.3.4 OPTIMIZE TABLE ステートメント
-
Apache Iceberg#Data Engineering 分析データセット向けのオープンテーブルフォーマット(公式には "The open table format for analytic datasets")。オブジェクトストレージ上のデータファイルに SQL テーブルの信頼性とシンプルさをもたらす仕様で、Spark・Trino・Flink・Hive など複数のエンジンが同一テーブルへ同時アクセスできる スキーマ進化: 列の追加・リネーム・並べ替えを安全に行える(zombie data を発生させない) 隠蔽パーティショニング: 行からのパーティション値生成をテーブル側が担い、不要なパーティションの読み取りをスキップする タイムトラベル: 同一スナップショットを参照する再現可能なクエリ MERGE INTO / UPDATE / DELETE と、ファイルレイアウト最適化(コンパクション)に対応 https://iceberg.apache.org/
-
ngram#Data Engineering MySQLに搭載されている全文検索向けの全文パーサー、日本語対応している。 FULLTEXT と合わせて指定しインデックスを生成する MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.10.8 ngram 全文パーサー
-
pgx#Programming #Data Engineering Go用のPostgreSQLドライバー・ツールキット database/sql互換インターフェースとネイティブインターフェースの両方を提供 約60種類のPostgreSQL型をサポート(uuid, hstore, json, bytea, numericなど) LISTEN/NOTIFYやCOPYなどPostgreSQL固有の機能にも対応 https://github.com/jackc/pgx
-
PostgreSQL
-
MapReduce#Data Engineering Unixのプロセスと同様の特徴を持つ分散ファイルシステム上のバッチ処理フレームワーク。 MapReduceジョブは以下の2つに分かれる Mapper 分散ファイルシステムの各レコードからキーと値のコレクションを抽出する Reducer mapperによって生成されたキーと値のコレクションからコレクションに対するイテレータとともに関数を適用し出力レコードを適用する HadoopのMapReduce実装ではHDFS(Hadoop Destributed File System)と呼ばれる分散ファイルシステムが用いられる
-
OLTPOnline Transactional Processing #Data Engineering ACIDを遵守し、高い可用性・信頼性を満たすべきシステムに対して用いられる言葉
-
Datadog/Database Monitoring#Observability #Data Engineering Datadog上でデータベースの詳細な可視性を提供する Explain Plansでは実行計画を容易に把握することができる 導入にはAPMの有効化が必須でありでクエリを呼んでいるサービスの内訳を可視化できる データベース モニタリング
-
Apache Parquet#Data Engineering 効率的なデータの保存と取得のために設計された、オープンソースの列指向データファイルフォーマット(公式には "an open source, column-oriented data file format")。列単位の配置により、分析クエリで必要な列だけを読み取れる 高性能な圧縮・エンコーディング方式を備え、複雑なデータの一括処理を扱える 多くのプログラミング言語・分析ツールでサポートされる https://parquet.apache.org/
-
BigQuery/Storage Read API#Data Engineering BigQueryのテーブルデータをgRPCベースのプロトコルで高スループットに直読みする API。SQL クエリの実行を介さず、ストレージからストリームとして読み出す スナップショット分離モデル: 全コンシューマが特定時点(デフォルトはセッション作成時点)のデータを読むため、読み取り中の書き込みに影響されない ReadSession 作成時にサーバーがデータを複数ストリームへ分割し、並列に読み取れる。セッションは作成から最低 6 時間有効 列の射影と行フィルタをサーバー側で適用でき、転送フォーマットは Apache Arrow または Avro RPC フロー制御によりクライアントの消費速度に応じて送信が調整され、行オフセット指定で読み取りを再開できる https://docs.cloud.google.com/bigquery/docs/reference/storage
-
Amazon/S3Simple Storage Service #Data Engineering AWSが提供するオブジェクトストレージサービス What is Amazon S3? - Amazon Simple Storage Service
-
Amazon/DynamoDB#Data Engineering Amazonが提供するリーダーレスレプリケーションによるデータストア What is Amazon DynamoDB? - Amazon DynamoDB
-
Amazon/Athena#Data Engineering AWSのサーバーレスのインタラクティブな分析サービス、S3を中心に様々なデータソースを元にSQLでデータを抽出可能にする Amazon Athena とは - Amazon Athena
-
Book/SRE サイトリライアビリティエンジニアリング
-
Bツリー#Data Engineering Bツリーはデータベースを固定サイズのブロックあるいはページに分割する。固定サイズの空き容量がない状態で新しいキーが追加される場合、半分の領域が空いた2つのブロックに分割される。 このアルゴリズムはツリーバランスが保たれ、ツリーの深さも3ないし4レベルに収まることがほとんど。 また信頼性を高めるためにwrite-aheadログ(WAL)と呼ばれる書き込み内容の構造化データを追記して保持している。 Wikipedia
-
モノリスからマイクロサービスへ
-
Testcontainers
-
データ指向アプリケーションデザイン
-
Redis#Data Engineering インメモリデータストア。キャッシュ、メッセージブローカー、データベースとして利用される キーバリュー型のNoSQLデータベース 文字列、ハッシュ、リスト、セット、ソート済みセットなどのデータ構造をサポート https://redis.io/
-
ACID#Data Engineering トランザクションが保証する安全性について以下の4つの頭文字を取ったもの 原子性(Atomicity) 一貫性(Consistency) 分離性(Isolation) 永続性(Durability)
-
SQLパフォーマンス詳解
-
リレーショナルデータベース#Data Engineering
-
リーダーレスレプリケーション#Data Engineering AmazonがDynamoシステムで利用し流行しDynamoスタイルと呼ばれる。 一部のノードが何らかの理由で利用できなくてもクオラムによって読み取りあるいは書き込みの正当性を判断する
-
XSAM/otelsql#Observability #Programming #Data Engineering Goのdatabase/sqlパッケージにOpenTelemetry計装を追加するライブラリ トレースとメトリクスの両方をサポート PostgreSQL、MySQL、SQLiteなど、database/sqlドライバを持つ任意のDBに対応 https://github.com/XSAM/otelsql