難問・アンチパターン応用
ある企業がAzure Table Storageに大量のセンサーデータを保存し、PartitionKeyに「デバイスID+YYYYMMDD」(例:DEVICE001_20240315)、RowKeyに「タイムスタンプ」を使用しています。データ量の増加に伴い、特定日付のデバイスデータ取得が遅くなりました。問題と対策として正しいのはどれか?
A.原因はRowKeyがタイムスタンプであるため、クエリが遅い。対策:RowKeyを逆順タイムスタンプに変更
✗ RowKeyをタイムスタンプにすることは範囲検索に最適です。逆順に変更してもPartitionKey問題は解決しません。
B.原因は存在しない。Table Storageは自動的にパーティションをスケールするため、常に高速
✗ Table Storageは自動スケーリングしますが、単一パーティション内のIOPS上限(通常20,000RU/s程度)に達するとスロットルされます。
C.原因はPartitionKeyが日付ごとに分散し、ホットパーティションが発生していない。むしろデータベースを移行すべき
✗ 対策として「データベースを移行すべき」は、根本原因を特定せずに提案された不適切な対策です。
D.原因はPartitionKeyの粒度が粗く、特定日付に大量アクセスが集中し、ストレージアカウントのIOPS上限に達している。対策:PartitionKeyに時間単位(例:YYYYMMDDHH)を追加し、パーティション分散度を上げる← 正解
✓ 正解です。日付粒度だけではパーティションが足りず、アクセスが集中します。時間単位を追加することで複数パーティションに分散し、IOPS効率が向上します。
この問題のポイント
日付粒度だけではパーティションが足りず、アクセスが集中します。時間単位を追加することで複数パーティションに分散し、IOPS効率が向上します。
「難問・アンチパターン」の他の問題
Cosmos DBについて「誤っている」記述はどれか?以下のAzureアーキテクチャ設計のうち「最も深刻な問題がある」のはどれか?データエンジニアが「Azure Synapse Analytics Serverless SQL Poolを使えば、毎秒…開発者が「Power BIのImportモードを使えば、Azure SQL Databaseのデータが常にリアルタイムで…あるシステムで「Azure Table StorageのPartitionKeyにデバイスの設置日(2024-01-15…「Azure Data Factoryのコスト最適化のため、すべてのETLパイプラインをAzure IR(Integra…
IT・クラウド の関連資格
AWS Certified Cloud Practitioner(CLF-C02)
AWSクラウドの入門資格。クラウドの概念・AWSのコアサービス・セキュリティ・料金モデルを問う。
AWS Certified Solutions Architect - Associate(SAA-C03)
AWSでのシステム設計能力を問うアソシエイト資格。高可用性・セキュリティ・コスト最適化の設計が中心。
AZ-900:Microsoft Azure Fundamentals
クラウドとAzureの基礎を問うMicrosoft認定資格。クラウドの概念、Azureの主要サービス、セキュリティ・コンプライアンス・料金を扱う。