Important
Azure Synapse Analytics データ エクスプローラー (プレビュー) は、2025 年 10 月 7 日に廃止されます。 この日以降、Synapse Data Explorer で実行されているワークロードは削除され、関連付けられているアプリケーション データは失われます。 Microsoft Fabric の Eventhouse に移行 することを強くお勧めします。
Microsoft Cloud Migration Factory (CMF) プログラムは、お客様が Fabric に移行できるように設計されています。 このプログラムは、顧客に無料でハンズオン キーボード リソースを提供します。 これらのリソースは、定義済みの合意されたスコープで、6 ~ 8 週間割り当てられます。 顧客の指名は、Microsoft アカウント チームから受け入れられるか、CMF チームに ヘルプの要求 を送信することによって直接受け入れられます。
Azure Event Hubs は、ビッグ データのストリーミング プラットフォームとなるイベント インジェスト サービスです。 Azure Synapse Data Explorer では、カスタマー マネージド Event Hubs からの継続的なインジェストが提供されます。
Event Hubs インジェスト パイプラインは、いくつかの手順で Azure Synapse Data Explorer にイベントを転送します。 最初に、Azure portal で Event Hubs を作成します。 次に、 特定の形式のデータを取り込むターゲット テーブルを Azure Synapse データ エクスプローラーで作成し、指定された インジェスト プロパティを使用して取り込みます。 Event Hubs 接続は、 イベント ルーティングを認識している必要があります。 データは、 イベント システムのプロパティ マッピングに従って、選択したプロパティで埋め込まれます。 Event Hubs への接続を作成して Event Hubs を作成し、イベントを送信します。 このプロセスは、Azure portal、C# または Python によるプログラム、または Azure Resource Manager テンプレートを使用して管理できます。
Azure Synapse Data Explorer でのデータ インジェストの一般的な情報については、「 Azure Synapse Data Explorer のデータ インジェストの概要」を参照してください。
データ形式
データは EventData オブジェクトの形式で Event Hubs から読み取られます。
サポートされる形式を確認してください。
注
Event Hub では、.raw形式はサポートされていません。
GZip圧縮アルゴリズムを使用してデータを圧縮できます。Compressionでを指定します。- データ圧縮は、圧縮形式 (Avro、Parquet、ORC) ではサポートされていません。
- カスタム エンコードおよび埋め込み システム プロパティ は、圧縮データではサポートされていません。
取り込み特性
インジェスト プロパティは、インジェスト プロセス、データのルーティング先と処理方法を指示します。 EventData.Properties を使用して、イベント インジェストのインジェスト プロパティを指定できます。 以下のプロパティを設定できます。
| プロパティ | Description |
|---|---|
| 表 | 既存のターゲット テーブルの名前 (大文字と小文字が区別されます)。 [Table] ペインで設定された Data Connection をオーバーライドします。 |
| Format | データ形式。 [Data format] ペインで設定された Data Connection をオーバーライドします。 |
| インジェストマッピングリファレンス | 使用する既存のインジェスト マッピングの名前。 [Column mapping] ペインで設定された Data Connection をオーバーライドします。 |
| Compression | データ圧縮、 None (既定)、または GZip 圧縮。 |
| Encoding | データ エンコード (既定値は UTF8)。 .NET でサポートされているエンコードのいずれかを指定できます。 |
| タグ | JSON 配列文字列として書式設定された、取り込まれたデータに関連付けられるタグの一覧。 タグを使用すると、パフォーマンスに影響します。 |
注
データ接続の作成後にエンキューされたイベントのみが取り込まれたます。
イベント ルーティング
Azure Synapse Data Explorer クラスターへの Event Hubs 接続を設定するときに、ターゲット テーブルのプロパティ (テーブル名、データ形式、圧縮、マッピング) を指定します。 データの既定のルーティングは、 static routingとも呼ばれます。
イベント プロパティを使用して、各イベントのターゲット テーブル プロパティを指定することもできます。 接続により、 EventData.Properties で指定されたデータが動的にルーティングされ、このイベントの静的プロパティがオーバーライドされます。
次の例では、Event Hubs の詳細を設定し、気象メトリック データをテーブル WeatherMetricsに送信します。
データは json 形式です。
mapping1 はテーブル WeatherMetricsで事前に定義されています。
Warnung
この例では、この例をわかりやすくするために、接続文字列認証を使用して Event Hubs に接続します。 ただし、接続文字列をスクリプトの中にハードコーディングするには、アプリケーションにおいて非常に高度な信頼性が要求され、かつセキュリティ上のリスクが伴います。
長期的で安全なソリューションのためには、次のいずれかのオプションを使用します。
- パスワードレス認証
- Azure Key Vault の中に接続文字列を格納し、コードの中でこのメソッドを使用してそれを取得する。
var eventHubNamespaceConnectionString=<connection_string>;
var eventHubName=<event_hub>;
// Create the data
var metric = new Metric { Timestamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 };
var data = JsonConvert.SerializeObject(metric);
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(data));
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['mydatatag']");
// Send events
var eventHubClient = EventHubClient.CreateFromConnectionString(eventHubNamespaceConnectionString, eventHubName);
eventHubClient.Send(eventData);
eventHubClient.Close();
イベント システム プロパティのマッピング
システム プロパティには、イベントがエンキューされた時点で Event Hubs サービスによって設定されたプロパティが格納されます。 Azure Synapse Data Explorer Event Hubs 接続では、選択したプロパティがテーブルのデータ ランディングに埋め込まれます。
注
- システム プロパティは、
jsonおよび表形式 (csvやtsvなど) でサポートされており、圧縮データではサポートされていません。 サポートされていない形式を使用してもデータは取り込まれますが、プロパティは無視されます。 - 表形式データの場合、システム プロパティは単一レコードのイベント メッセージでのみサポートされます。
- JSON データの場合、システム プロパティは複数レコードのイベント メッセージでもサポートされます。 このような場合、システム プロパティは、イベント メッセージの最初のレコードにのみ追加されます。
-
csvマッピングの場合、csvの表に示された順序でプロパティがレコードの先頭に追加されます。 -
jsonマッピングの場合、システム プロパティの表のプロパティ名に従ってプロパティが追加されます。
システム プロパティ
Event Hubs では、次のシステム プロパティが公開されます。
| プロパティ | データ型 | Description |
|---|---|---|
| x-opt-enqueued-time | datetime | イベントがエンキューされた UTC 時刻 |
| x-opt-sequence-number | long | Event Hubs のパーティション ストリーム内のイベントの論理シーケンス番号 |
| x-opt-offset | 文字列 | Event Hubs パーティション ストリームからのイベントのオフセット。 オフセット識別子は、Event Hubs ストリームのパーティション内で一意です |
| x-opt-publisher | 文字列 | 発行元の名前 (発行元のエンドポイントにメッセージが送信された場合) |
| x-opt-partition-key | 文字列 | イベントが格納されている、対応するパーティションのパーティション キー |
テーブルの [データ ソース] セクションで [イベント システムのプロパティ] を選択した場合は、テーブルのスキーマとマッピングにプロパティを含める必要があります。
スキーマ マッピングの例
テーブル スキーマ マッピングの例
データに 3 つの列 (Timespan、Metric、および Value) が含まれており、含めるプロパティが x-opt-enqueued-time および x-opt-offset の場合は、次のコマンドを使用してテーブル スキーマを作成または変更します。
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)
CSV マッピングの例
次のコマンドを実行して、レコードの先頭にデータを追加します。 序数値に注意してください。
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "Timespan", "Properties":{"Ordinal":"2"}},'
' { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
' { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
']'
JSON マッピングの例
データは、システム プロパティのマッピングを使用して追加されます。 これらのコマンドを実行します。
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "Timespan", "Properties":{"Path":"$.timestamp"}},'
' { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
' { "column" : "Value", "Properties":{"Path":"$.value"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
' { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
']'
Event Hubs 接続
注
パフォーマンスを最大限に高めるには、Azure Synapse Data Explorer クラスターと同じリージョンにすべてのリソースを作成します。
Event Hubs を作成する
まだお持ちでない場合は、 Event Hubs を作成します。 Event Hubs への接続は、 Azure portal、 C# または Python、または Azure Resource Manager テンプレートを使用してプログラムで管理できます。
注
- パーティション数は変更できないため、パーティション数を設定するときは長期的なスケールを考慮する必要があります。
- コンシューマー グループは、コンシューマーごとに一意である "必要があります"。 Azure Synapse Data Explorer 接続専用のコンシューマー グループを作成します。
イベントを送信する
データを生成して Event Hubs に送信する サンプル アプリ を参照してください。
サンプル データを生成する方法の例については、「Event Hubs から Azure Synapse Data Explorer にデータを取り込む」を参照してください。
地理的災害回復ソリューションの設定
Event Hubs には、 geo ディザスター リカバリー ソリューションが用意されています。
Azure Synapse Data Explorer では、Event Hubs 名前空間 Alias サポートされていません。 ソリューションに geo ディザスター リカバリーを実装するには、プライマリ名前空間用とセカンダリ名前空間用の 2 つの Event Hubs データ接続を作成します。 Azure Synapse Data Explorer は、両方の Event Hubs 接続をリッスンします。
注
プライマリ名前空間からセカンダリ名前空間へのフェールオーバーを実装するのは、ユーザーの責任です。