データ ストレージ
Note
Time Series Insights サービスは、2024 年 7 月 7 日に廃止されます。 できるだけ早く既存の環境を代替ソリューションに移行することを検討してください。 サポートの終了と移行の詳細については、こちらのドキュメントを参照してください。
この記事では、Azure Time Series Insights Gen2 でのデータ ストレージについて説明します。 ウォームおよびコールド、データの可用性、およびベスト プラクティスについて説明します。
プロビジョニング
Azure Time Series Insights Gen2 環境を作成するときには、次のオプションがあります。
- コールド データ ストレージ:
- 環境に合わせて選択したサブスクリプションとリージョンに新しい Azure Storage リソースを作成します。
- 既存の Azure Storage アカウントをアタッチします。 このオプションは、Azure Resource Manager テンプレートから展開する場合にのみ使用でき、Azure portal には表示されません。
- ウォーム データ ストレージ:
- ウォーム ストアはオプションであり、プロビジョニング時またはプロビジョニング後に有効または無効にすることができます。 ウォーム ストアを後で有効にする場合、コールド ストアに既にデータがあるときは、後述のこのセクションを参照して、想定されている動作を理解してください。 ウォーム ストアのデータ保持期間は 7 ~ 31 日に構成でき、必要に応じて調整することもできます。
イベントが取り込まれると、ウォーム ストア (有効な場合) とコールド ストアの両方でインデックスが付けられます。
警告
コールド ストア データが存在する Azure Blob ストレージ アカウントの所有者は、アカウント内のすべてのデータに対するフルアクセス権を持っています。 このアクセスには、書き込みおよび削除のアクセス許可が含まれます。 Azure Time Series Insights Gen2 によって書き込まれたデータを編集または削除しないでください。データが失われる原因になる可能性があります。
データの可用性
Azure Time Series Insights Gen2 では、最適なクエリ パフォーマンスのために、データのパーティション分割とインデックス付けが行われます。 データは、インデックスが付けられた後、ウォーム ストア (有効な場合) とコールド ストアの両方からクエリを実行できるようになります。 取り込まれるデータの量とパーティションごとのスループット レートは、可用性に影響を与える可能性があります。 最適なパフォーマンスを得るには、イベント ソースのスループットの制限とベスト プラクティスを確認してください。 環境でデータ処理の問題が発生した場合に通知されるように、遅延の警告を構成することもできます。
重要
Time Series Query API 経由でデータが利用可能になるまでに最大 60 秒の時間が発生することがあります。 待機時間が 60 秒を大きく上回る場合は、Azure portal を通じてサポート チケットを送信してください。
Azure Time Series Insights Gen2 の外部で Parquet ファイルに直接アクセスした場合、データが使用可能になるまでに最大 5 分間かかる可能性があります。 詳細については、「Parquet ファイル形式」セクションを参照してください。
ウォーム ストア
ウォーム ストア内のデータは、Time Series Query API、Azure Time Series Insights TSI エクスプローラー、または Power BI コネクタを介してのみ使用できます。 ウォーム ストア クエリは無料であり、クォータはありませんが、同時要求数 30 の制限があります。
ウォーム ストアの動作
有効にすると、イベントのタイムスタンプに関係なく、環境にストリーミングされるすべてのデータがウォーム ストアにルーティングされます。 ストリーミング インジェスト パイプラインは、ほぼリアルタイムのストリーミング用に構築されており、履歴イベントの取り込みはサポートされていません。
保持期間は、イベントのタイムスタンプではなく、ウォーム ストアでイベントにインデックスが付けられた時点に基づいて計算されます。 これは、イベントのタイムスタンプが将来のものであっても、保持期間が経過した後はデータがウォーム ストアで使用できなくなることを意味します。
- 例: 10 日間の天気予報を含むイベントが、7 日間の保持期間で構成されたウォーム ストレージ コンテナーに取り込まれ、インデックスが付けられます。 7 日が経過すると、ウォーム ストアでは予報にアクセスできなくなりますが、コールド ストアからは照会できます。
コールド ストレージで最近のデータに既にインデックスが付けられている既存の環境でウォーム ストアを有効にすると、このデータはウォーム ストアにバックフィルされないことに注意してください。
ウォーム ストアを有効にしたばかりで、最近のデータをエクスプローラーで表示するときに問題が発生している場合は、次のようにウォーム ストア クエリを一時的にオフにすることができます。
コールド ストア
このセクションでは、Azure Time Series Insights Gen2 に関連する Azure Storage の詳細について説明します。
Azure Blob Storage の詳細については、Storage Blob の概要に関する記事をご覧ください。
コールド ストレージ アカウント
Azure Time Series Insights Gen2 では、Azure Storage アカウント内の各イベントのコピーが最大 2 つ保持されます。 1 つのコピーには、イベントがインジェスト時間によって並べ替えられて格納され、常に時間順に並べられた一連のイベントにアクセスできるようになります。 時間の経過と共に、Azure Time Series Insights Gen2 では、高パフォーマンスのクエリ用に最適化するために、データの再パーティション分割コピーも作成されます。
すべてのデータは、Azure Storage アカウントに無期限に格納されます。
警告
Time Series Insights によって使用されるストレージ アカウントへのパブリック インターネット アクセスを制限しないでください。そうしないと、必要な接続が切断されます。
BLOB の作成と編集
クエリのパフォーマンスとデータの可用性を確保するため、Azure Time Series Insights Gen2 によって作成された BLOB の編集および削除は行わないでください。
コールド ストア データへのアクセス
Azure Time Series Insights Explorer および Time Series Query API からデータにアクセスするだけでなく、コールド ストアに格納されている Parquet ファイルから直接データにアクセスすることもできます。 たとえば、Jupyter Notebook でデータの読み取り、変換、クレンジングを行った後、それを使用して同じ Spark ワークフローで Azure Machine Learning モデルをトレーニングできます。
Azure Storage アカウントから直接データにアクセスするには、Azure Time Series Insights Gen2 データを格納するために使用しているアカウントへの読み取りアクセス権が必要です。 次に、「Parquet ファイル形式」セクションで説明されている PT=Time
フォルダーにある Parquet ファイルの作成時刻に基づいて、選択したデータを読み取ることができます。 ストレージ アカウントへの読み取りアクセスを有効にする方法の詳細については、ストレージ アカウント リソースへのアクセスの管理に関するページを参照してください。
データの削除
Azure Time Series Insights Gen2 のファイルは削除しないでください。 関連するデータは、Azure Time Series Insights Gen2 内からのみ管理してください。
Parquet ファイル形式とフォルダー構造
Parquet は、効率的なストレージとパフォーマンスのために設計されている、オープンソースの列指向ファイル形式です。 Azure Time Series Insights Gen2 では、Parquet を使用して、大規模な時系列 ID ベースのクエリ パフォーマンスを実現します。
Parquet ファイルの種類の詳細については、Parquet のドキュメントを参照してください。
Azure Time Series Insights Gen2 では、次のようにデータのコピーが格納されます。
PT=Time
フォルダーは、インジェスト時間によって分割され、データは到着順にほぼ格納されます。 このデータは時間の経過と共に保存され、Azure Time Series insights Gen2 の外部 (Spark notebook など) から直接アクセスできます。 タイムスタンプ<YYYYMMDDHHMMSSfff>
は、データのインジェスト時間に相当します。<MinEventTimeStamp>
と<MaxEventTimeStamp>
はファイルに含まれるイベントのタイムスタンプの範囲に対応します。 パスとファイル名は次のように書式設定されます。V=1/PT=Time/Y=<YYYY>/M=<MM>/<BlobCreationTimestamp>_<MinEventTimestamp>_<MaxEventTimestamp>_<TsiInternalSuffix>.parquet
PT=Live
フォルダーとPT=Tsid
フォルダーには、データの 2 番目のコピーが含まれています。再パーティション分割では、時系列クエリのパフォーマンスが大規模になります。 このデータは時間の経過と共に最適化され、静的ではありません。 再分割中に、いくつかのイベントが複数の BLOB に存在し、BLOB 名が変更される可能性があります。 これらのフォルダーは Azure Time Series Insights Gen2 によって使用され、直接アクセスすることはできません。この目的の場合は、PT=Time
のみを使用してください。
Note
2021 年 6 月より前からの PT=Time
フォルダーのデータには、イベント時間範囲のないファイル名形式を使用できます: V=1/PT=Time/Y=<YYYY>/M=<MM>/<BlobCreationTimestamp>_<TsiInternalSuffix>.parquet
。 内部のファイル形式は同じであり、両方の名前付けスキームを持つファイルを一緒に使用することができます。
<YYYY>
は、4 桁の年表記に対応します。<MM>
は、2 桁の月表記に対応します。- timestamp の
<YYYYMMDDHHMMSSfff>
形式は、4 桁の年 (YYYY
)、2 桁の月 (MM
)、2 桁の日 (DD
)、2 桁の時 (HH
)、2 桁の分 (MM
)、2 桁の秒 (SS
)、3 桁のミリ秒 (fff
) になります。
Azure Time Series Insights Gen2 のイベントは、次のように、Parquet ファイル コンテンツにマップされます。
- 各イベントは、1 行にマップされます。
- すべての行には、イベントのタイムスタンプの timestamp 列が含まれています。 タイムスタンプ プロパティが null になることはありません。 イベント ソースでタイム スタンプ プロパティが指定されていない場合の既定値は、イベント ソース エンキュー時刻になります。 格納されているタイムスタンプは、常に UTC 形式です。
- すべての行には、Azure Time Series Insights Gen2 環境の作成時に定義される時系列 ID (TSID) 列が含まれます。 TSID プロパティ名には、サフィックス
_string
が含まれます。 - テレメトリ データとして送信される他のすべてのプロパティは、プロパティの型に応じて、
_bool
(ブール値)、_datetime
(タイム スタンプ)、_long
(long)、_double
(倍精度浮動小数点数型)、_string
(文字列)、または_dynamic
(動的) で終わる列名にマップされます。 詳細については、「サポートされるデータ型」を参照してください。 - このマッピング スキーマは、ファイル形式の最初のバージョンに適用され、V = 1 として参照され、同じ名前のベース フォルダーに格納されます。 この機能が進化するにつれて、このマッピング スキーマが変更され、参照名が増える可能性があります。
次のステップ
データ モデリングを確認します。