Data Plus で利用可能なストリーミングエクスポート機能を使用すると、NRQL を使用してカスタムルールを作成し、エクスポートするデータを指定することで、AWS Kinesis Firehose、Azure イベント Hub、またはGCP Pub/Subにデータを送信できます。このガイドでは、NerdGraph を使用してストリーミングルールを作成および更新し、既存のルールを表示する方法について説明します。これらの呼び出しを行うには、NerdGraphエクスプローラー を使用できます。さらに、エクスポート圧縮 機能を使用して、エクスポート前にデータを圧縮するオプションもあります。
以下に、ストリーミングエクスポート機能の使用例をいくつか示します。
データレイクにデータを入力するには AI/ML トレーニングの強化 コンプライアンス、法的、またはセキュリティ上の理由から、長期的な保持を確保します。 ストリーミングエクスポートルールはいつでも有効または無効にできます。ただし、ストリーミングエクスポートは現在取り込まれているデータのみを処理することにご注意ください。機能を無効にしてから再度有効にした場合、オフの間に取り込まれたデータはエクスポートされません。過去のデータをエクスポートするには、履歴データエクスポート 機能を使用してください。
要件と限界 ストリーミング データの制限: 1 か月にストリーミングできるデータの量は、1 か月に 取り込まれたデータの 合計によって制限されます。 ストリーミング データ量が取り込みデータ量を超える場合、ストリーミング エクスポートへのアクセスと使用を停止する場合があります。
パーミッション関連の要件。
New Relicデータを受信するには、AWS Kinesis Firehose、Azure イベントハブ、またはGCP Pub/Subをセットアップする必要があります。まだセットアップしていない場合は、以下のAWS 、Azure 、またはGCP Pub/Sub の手順に従ってください。
NRQL 要件:
集計のないフラットなクエリである必要があります。たとえば、 SELECT *またはSELECT column1, column2フォームがサポートされています。 サブクエリを除く、 WHERE句のすべてに適用されます。 クエリにFACET句、 COMPARE WITHまたはLOOKUPを含めることはできません。 ネストされたクエリはサポートされていません。 メトリック タイムスライス データ ではなく、NRDB に格納されたデータ型 をサポートします。前提条件 AWS Kinesis Firehose をセットアップする AWSへのストリーミングデータのエクスポートをセットアップするには、まずAmazon Kinesis Firehoseをセットアップする必要があります。次の手順に従ってください。
ストリーミングエクスポート用のFirehoseを作成する New Relic データをストリーミングする専用の Firehose を作成します。
Amazon Kinesis Data Firehose に移動します。配信ストリームを作成します。 ストリームに名前を付けます。この名前は、後でルールを登録するときに使用します。 Direct PUT or other sources を使用して、New Relic の JSON イベント形式 (S3、Redshift、OpenSearch など) と互換性のある宛先を指定します。IAM Firehose 書き込みアクセスポリシーを作成する IAM コンソールに移動し、ユーザーとしてサインインします。 左側のナビゲーションでPolicies [ポリシー]をクリックし、Create policy [ポリシーの作成]をクリックします。 Firehose サービスを選択し、 PutRecordとPutRecordBatchを選択します。 Resourcesでは、配信ストリームを選択し、ARN を追加して、ストリームのリージョンを選択します。AWS アカウント番号を入力し、名前ボックスに目的の配信ストリーム名を入力します。 ポリシーを作成します。 New Relic の書き込みアクセスを許可するための IAM ロールを作成する IAM ロールを設定するには:
IAMに移動し、Roles をクリックします。 AWS アカウントのロールを作成し、 for another AWS account を選択します。 New Relic エクスポート アカウント ID を入力します: 888632727556 。 Require external ID を選択し、エクスポート元の New Relic アカウントのアカウント ID を入力します。Permissions をクリックし、上で作成したポリシーを選択します。エクスポート登録時に使用されるロール名を追加し、説明を入力してください。 ロールを作成します。 これらの手順が完了したら、NerdGraph を使用してエクスポートルールを設定できます。
ストリームを作成する このAPIを使用すると、AWS Kinesis Firehoseにデータを送信するためのストリーミングエクスポートルールを作成できます。
入力 パラメータ
データタイプ
必須ですか?
説明
accountId
整数
はい
New Relic
アカウントID
。
ruleParameters.description
弦
いいえ
ルールの簡単な説明。これを使用して、エクスポートルールに関する追加情報やコンテキストを提供します。
ruleParameters.name
弦
はい
エクスポートルールの名前。
ruleParameters.nrql
弦
はい
エクスポートするテレメトリーデータを選択するためのNRQL。
ruleParameters.payloadCompression
弦
いいえ
payloadCompression は2つの値を受け入れます:
DISABLED:デフォルトでは、ペイロードはエクスポートされる前に圧縮されません。GZIP:エクスポートする前にペイロードを圧縮するには、これを選択します。awsParameters.awsAccountId
ID
はい
ターゲットのFirehose配信ストリームを所有する
AWSアカウント
を指定します。例:
10000000000
。
awsParameters.deliveryStreamName
弦
はい
データ配信に使用される
Kinesisストリームの名前
を指定します。例:
firehose-test-stream
。
awsParameters.region
弦
はい
リソースがデプロイされる
AWSリージョン
を指定します。例:
us-east-1
。
awsParameters.role
弦
はい
New Relic用に構成された
AWS IAMロール
を指定します。これは常に
firehose-role
になります。
サンプルリクエスト streamingExportCreateRule (
accountId : YOUR_NR_ACCOUNT_ID
description : " ADD_RULE_DESCRIPTION "
name : " PROVIDE_RULE_NAME "
nrql : " SELECT * FROM NodeStatus "
payloadCompression : DISABLED
awsAccountId : " YOUR_AWS_ACCOUNT_ID "
deliveryStreamName : " FIREHOSE_STREAM_NAME "
region : " SPECIFY_AWS_REGION "
レスポンス :ルールIDとステータスを含むレスポンスを受け取ります。ステータスは最初はCREATION_IN_PROGRESSになり、ルールの作成が完了するまでに最大6分かかる場合があります。留意点 :ルールの登録が完了するまでは、ルールが作成プロセスのためにロックされているため、別のミューテーションアクション(Enable、Disable、またはUpdateなど)を開始することはできません。ルールの登録プロセスが完了する前に別のミューテーションアクションを試行すると、「The export rule is currently being updated by another request, please wait and try again later.」のようなメッセージが表示されます。
Deleteはいつでも使用できます。
ルールの作成に必要な約 6 分以内であれば、いつでも作成を終了してステータスを変更できます。ステータスはENABLED 、 DISABLED 、またはCREATION_FAILEDに変わります。
値に関する次の詳細を参照してください。
ENABLED ルールが正常に作成され、データのストリーミングが開始されたことを意味します。CREATION_FAILED ルールの作成に失敗したことを意味します。これはいくつかの理由で発生する可能性がありますが、多くの場合、AWS ポリシーまたは Azure SAS 検証の失敗が原因です。DISABLED は、ルールが作成されたものの、フィルタ ストリームの制限に達した、またはフィルタ ストリーム ルールの作成に失敗したなどの理由により、まだ有効になっていないことを意味します。6 分経ってもステータスがCREATION_IN_PROGRESSのままの場合は、サービスのシステム エラーが原因でルールの作成に失敗したことを意味します。ルールを削除して、新しいルールをもう一度作成してみてください。すべてのストリームを一覧表示します。 このAPIを使用すると、アカウントID に関連付けられているすべてのストリームルールの包括的なリストを取得できます。
サンプルリクエスト account ( id : YOUR_NR_ACCOUNT_ID ) {
ストリームルールの詳細を表示 このAPIを使用すると、アカウントIDとルールIDを指定して、特定のストリームルールに関する情報をクエリできます。
サンプルリクエスト account ( id : YOUR_NR_ACCOUNT_ID ) {
streamingRule ( id : "RULE_ID" ) {
ストリームを更新する このAPIを使用すると、既存のストリーミングエクスポートルールを変更できます。
入力 パラメータ
データタイプ
必須ですか?
説明
id
ID
はい
更新するストリーミングルールのIDです。
ruleParameters.description
弦
いいえ
ルールの簡単な説明。これを使用して、エクスポートルールに関する追加情報やコンテキストを提供します。
ruleParameters.name
弦
はい
エクスポートルールの名前。
ruleParameters.nrql
弦
はい
エクスポートするテレメトリーデータを選択するためのNRQL。
ruleParameters.payloadCompression
弦
いいえ
payloadCompression は2つの値を受け入れます:
DISABLED:デフォルトでは、ペイロードはエクスポートされる前に圧縮されません。GZIP:エクスポートする前にペイロードを圧縮するには、これを選択します。awsParameters.awsAccountId
ID
はい
ターゲットのFirehose配信ストリームを所有する
AWSアカウント
を指定します。例:
10000000000
。
awsParameters.deliveryStreamName
弦
はい
データ配信に使用される
Kinesisストリームの名前
を指定します。例:
firehose-test-stream
。
awsParameters.region
弦
はい
リソースがデプロイされる
AWSリージョン
を指定します。例:
us-east-1
。
awsParameters.role
弦
はい
New Relic用に構成された
AWS IAMロール
を指定します。これは常に
firehose-role
になります。
サンプルリクエスト streamingExportUpdateRule (
description : " ADD_RULE_DESCRIPTION "
name : " PROVIDE_RULE_NAME "
payloadCompression : DISABLED
awsAccountId : " YOUR_AWS_ACCOUNT_ID "
deliveryStreamName : " FIREHOSE_STREAM_NAME "
region : " SPECIFY_AWS_REGION "
レスポンス :ルールIDとステータスを含むレスポンスを受け取ります。注意点 :更新時に、メッセージフィールドに次のメッセージが表示されます。「エクスポートルールは更新中であり、プロセスの完了に数分かかる場合があります。後でもう一度確認してください」。完全に更新されるまでに最大6分かかる場合があります。
streamingRule を呼び出してルールを取得することで、ルールが更新されたかどうかを確認できます。ルールの更新中はルールがロックされ、他のミューテーションアクションをルールに対して実行することはできません。同じルールに対して別のミューテーションアクションを実行しようとすると、「エクスポートルールは現在別のリクエストによって更新されています。お待ちいただき、後でもう一度お試しください」というメッセージが表示されます。ユーザーは、削除されたルールを除く任意のステータスのルールを更新できます。
ストリームを有効にする このAPIを使用すると、既存のストリーミングルールを有効にして、リアルタイム処理や他のサービスとのインテグレーションのためにデータの継続的なエクスポートを促進できます。
入力 パラメータ
データタイプ
必須ですか?
説明
id
ID
はい
有効にするストリーミングルールのID。
サンプルリクエスト streamingExportEnableRule ( id : RULE_ID ) {
レスポンス :別の状態にあるルールを有効にしようとすると、「The export rule can't be enabled or disabled due to status not being allowed.」のようなエラーメッセージが返されます。別のミューテーションが実行されているためにルールがロックされている場合、ルールを有効にすることはできません。
重要 ルールのステータスがDISABLEDの場合にのみ、ルールを有効にできます。
ストリームを無効にする このAPIを使用すると、既存のストリーミングルールを無効にして、データの継続的なエクスポートを停止できます。
入力 パラメータ
データタイプ
必須ですか?
説明
id
ID
はい
無効にするストリーミングルールのIDです。
サンプルリクエスト streamingExportDisableRule ( id : RULE_ID ) {
応答 :別の状態にあるルールを無効にしようとすると、「The export rule can't be enabled or disabled due to status not being allowed.」のようなエラーメッセージが返されます。別の変更が行われているためにルールがロックされている場合、ルールを無効にすることはできません。
重要 ルールのステータスがENABLEDの場合にのみ、ルールを無効にすることができます。
ストリームを削除する このAPIを使用すると、ストリーミングルールを削除し、そのルールに関連するすべてのデータエクスポートを停止できます。
入力 パラメータ
データタイプ
必須ですか?
説明
id
ID
はい
削除するストリーミングルールのIDです。
サンプルリクエスト streamingExportDeleteRule ( id : RULE_ID ) {
重要 すでに削除されている場合を除き、どのステータスのルールでも削除を実行できます。ルールは一度削除されると、再度アクティブ化することはできません。削除後最初の24時間以内であれば、ルールIDを指定してsteamingRule APIを呼び出すことで、ルールを引き続き表示できます。24時間経過すると、NerdGraphからルールを検索できなくなります。
Azure イベント ハブをセットアップする Azureへのストリーミングデータエクスポートを設定するには、まずイベントハブを設定する必要があります。次の手順に従ってください。
または、こちら の Azure ガイドに従うこともできます。
イベントハブネームスペースを作成する Microsoft Azureアカウントから、Event Hubsに移動します。 手順に従って、Event Hubs 名前空間を作成します。すべてのデータを確実に受信できるように、自動インフレを有効にすることをお勧めします。 共有アクセスポリシーを使用してイベントハブで安全に認証するため、パブリックアクセスが有効になっていることを確認してください。 イベント Hubs ネームスペースがデプロイされたら、 Go to resource をクリックします。 イベントハブを作成する 左側の列でEvent Hubs をクリックします。
イベントハブを作成するには、+Event Hub をクリックします。
目的のイベントハブ名を入力してください。ストリーミングエクスポートルールを作成するために後で必要になるため、これを保存してください。
Retention には、Delete Cleanup policyと目的のRetention time (hrs)を選択します。
重要 現在、ストリーミング エクスポートは、 Compact 保持ポリシーを持つイベント ハブではサポートされていません。
イベントハブが作成されたら、Event Hub [イベントハブ]をクリックします。
共有アクセスポリシーを作成して添付する 左側の列で、 Shared access policies に移動します。 ページの上部近くにある+Add をクリックします。 共有アクセス ポリシーの名前を選択します。 Send にチェックを入れて、 Create をクリックします。作成したポリシーをクリックし、Connection string–primary key をコピーします。後でイベントハブを認証してデータを送信するために必要になるため、これを保存します。 これらの手順が完了したら、NerdGraph を使用してエクスポートルールを設定できます。
ストリームを作成する このAPIを使用すると、Azure Event Hubにデータを送信するストリーミングエクスポートルールを作成できます。
入力 パラメータ
データタイプ
必須ですか?
説明
accountId
整数
はい
New Relic
アカウントID
。
ruleParameters.description
弦
いいえ
ルールの簡単な説明。これを使用して、エクスポートルールに関する追加情報やコンテキストを提供します。
ruleParameters.name
弦
はい
エクスポートルールの名前。
ruleParameters.nrql
弦
はい
エクスポートするテレメトリーデータを選択するためのNRQL。
ruleParameters.payloadCompression
弦
いいえ
payloadCompression は2つの値を受け入れます:
DISABLED:デフォルトでは、ペイロードはエクスポートされる前に圧縮されません。GZIP:エクスポートする前にペイロードを圧縮するには、これを選択します。azureParameters.eventHubConnectionString
弦
はい
このパラメーターは、特定のイベントハブへのアクセスを提供する
接続文字列
です。次のようになります:
Endpoint=sb://<NamespaceName>.servicebus.windows.net/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<EventHubName>
azureParameters.eventHubName
弦
はい
このパラメーターは、イベントが送信されて処理されるEvent Hubの名前を指定します。例を以下に示します。
my-event-hub.
サンプルリクエスト streamingExportCreateRule (
accountId : YOUR_NR_ACCOUNT_ID
description : " ADD_RULE_DESCRIPTION "
name : " PROVIDE_RULE_NAME "
nrql : " SELECT * FROM NodeStatus "
payloadCompression : DISABLED
eventHubConnectionString : " YOUR_EVENT_HUB_SAS_CONNECTION_STRING "
eventHubName : "YOUR_EVENT_HUB_NAME"
応答 :ルールIDとステータスを含む応答を受け取ります。ステータスは最初はCREATION_IN_PROGRESSになり、ルールの作成が完了するまでに最大6分かかる場合があります。
すべてのストリームを一覧表示します。 このAPIを使用すると、アカウントID に関連付けられているすべてのストリームルールの包括的なリストを取得できます。
サンプルリクエスト account ( id : YOUR_NR_ACCOUNT_ID ) {
ストリームルールの詳細を表示 このAPIを使用すると、アカウントIDとルールIDを指定して、特定のストリームルールに関する情報をクエリできます。
サンプルリクエスト account ( id : YOUR_NR_ACCOUNT_ID ) {
streamingRule ( id : "RULE_ID" ) {
ストリームを更新する このAPIを使用すると、既存のストリーミングエクスポートルールを変更できます。
入力 パラメータ
データタイプ
必須ですか?
説明
id
ID
はい
更新するストリーミングルールのIDです。
ruleParameters.description
弦
いいえ
ルールの簡単な説明。これを使用して、エクスポートルールに関する追加情報やコンテキストを提供します。
ruleParameters.name
弦
はい
エクスポートルールの名前。
ruleParameters.nrql
弦
はい
エクスポートするテレメトリーデータを選択するためのNRQL。
ruleParameters.payloadCompression
弦
いいえ
payloadCompression は2つの値を受け入れます:
DISABLED:デフォルトでは、ペイロードはエクスポートされる前に圧縮されません。GZIP:エクスポートする前にペイロードを圧縮するには、これを選択します。azureParameters.eventHubConnectionString
ID
はい
このパラメーターは、特定のEvent Hubへのアクセスを提供する接続文字列です。次のようになります:
Endpoint=sb://<NamespaceName>.servicebus.windows.net/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<EventHubName>
azureParameters.eventHubName
弦
はい
このパラメーターは、イベントが送信されて処理されるEvent Hubの名前を指定します。例を以下に示します。
my-event-hub.
サンプルリクエスト streamingExportUpdateRule (
description : " ADD_RULE_DESCRIPTION "
name : " PROVIDE_RULE_NAME "
payloadCompression : DISABLED
eventHubConnectionString : " YOUR_EVENT_HUB_SAS_CONNECTION_STRING "
eventHubName : "YOUR_EVENT_HUB_NAME"
応答 :ルールIDとステータスを含む応答を受け取ります。
ストリームを有効にする 既存のストリーミングルールを有効にし、リアルタイム処理や他のサービスとのインテグレーションのためにデータの継続的なエクスポートを促進するには、こちら を参照してください。
ストリームを無効にする 既存のストリーミングルールを無効にして、データの継続的なエクスポートを停止するには、こちら を参照してください。
ストリームを削除する ストリーミングルールを削除し、そのルールに関連するすべてのデータエクスポートを停止するには、こちら を参照してください。
GCP Pub/Subを設定します。 GCPへのストリーミングデータのエクスポートを設定するには、まずPub/Subを設定する必要があります。次の手順に従ってください。
Pub/Subトピックを作成する GCPコンソールから、Pub/Subページに移動します。 Create topic [トピックの作成]をクリックします。トピックIDを入力し、Create をクリックします。 Pub/Subで権限を設定する 作成したトピックの右側の列で、More actions をクリックします。
View permissions [権限の表示]を選択します。
Add Principal [プリンシパルの追加]をクリックし、新しいプリンシパルボックスに、当社が提供したサービスアカウントのメールアドレスを入力します:
USリージョン(デフォルト): us-prod-uds-streaming-export@h0c17c65df9291b526b433650e6a0a.iam.gserviceaccount.com EU地域: eu-prod-uds-streaming-export@h0c17c65df9291b526b433650e6a0a.iam.gserviceaccount.com JP地域: uds-jp-production@unifieddatastreams.iam.gserviceaccount.com Assign roles [ロールの割り当て]セクションで、Pub/Sub Publisherを検索し、Save [保存]をクリックします。
これらの手順が完了したら、NerdGraph を使用してエクスポートルールを設定できます。
ストリームを作成する このAPIを使用すると、GCP Pub/Subにデータを送信するためのストリーミングエクスポートルールを作成できます。
入力 パラメータ
データタイプ
必須ですか?
説明
accountId
整数
はい
New Relic
アカウントID
。
ruleParameters.description
弦
いいえ
ルールの簡単な説明。これを使用して、エクスポートルールに関する追加情報やコンテキストを提供します。
ruleParameters.name
弦
はい
エクスポートルールの名前。
ruleParameters.nrql
弦
はい
エクスポートするテレメトリーデータを選択するためのNRQL。
ruleParameters.payloadCompression
弦
いいえ
payloadCompression は2つの値を受け入れます:
DISABLED:デフォルトでは、ペイロードはエクスポートされる前に圧縮されません。GZIP:エクスポートされる前にペイロードを圧縮するには、これを選択します。gcpParameters.gcpProjectId
弦
はい
このパラメーターは、GCPプロジェクトの一意の識別子を表します。例を以下に示します。
google-project-id
gcpParameters.pubsubTopicId
弦
はい
このパラメーターは、cloudアプリケーション内でメッセージを送受信するために使用される、GCP Pub/Subのトピックを指定します。例を以下に示します。
pub-sub-topic-id.
サンプルリクエスト streamingExportCreateRule (
accountId : YOUR_NR_ACCOUNT_ID
description : " ADD_RULE_DESCRIPTION "
name : " PROVIDE_RULE_NAME "
nrql : " SELECT * FROM NodeStatus "
payloadCompression : DISABLED
gcpProjectId : " project-id "
pubsubTopicId : "pub-sub-topic-id"
応答 :ルールIDとステータスを含む応答を受け取ります。ステータスは最初はCREATION_IN_PROGRESSになり、ルールの作成が完了するまでに最大6分かかる場合があります。
すべてのストリームを一覧表示します。 このAPIを使用すると、アカウントID に関連付けられているすべてのストリームルールの包括的なリストを取得できます。
サンプルリクエスト account ( id : YOUR_NR_ACCOUNT_ID ) {
ストリームルールの詳細を表示 このAPIを使用すると、アカウントIDとルールIDを指定して、特定のストリームルールに関する情報をクエリできます。
サンプルリクエスト account ( id : YOUR_NR_ACCOUNT_ID ) {
streamingRule ( id : "RULE_ID" ) {
ストリームを更新する このAPIを使用すると、既存のストリーミングエクスポートルールを変更できます。
入力 パラメータ
データタイプ
必須ですか?
説明
id
ID
はい
更新するストリーミングルールのIDです。
ruleParameters.description
弦
いいえ
ルールの簡単な説明。これを使用して、エクスポートルールに関する追加情報やコンテキストを提供します。
ruleParameters.name
弦
はい
エクスポートルールの名前。
ruleParameters.nrql
弦
はい
エクスポートするテレメトリーデータを選択するためのNRQL。
ruleParameters.payloadCompression
弦
いいえ
payloadCompression は2つの値を受け入れます:
DISABLED:デフォルトでは、ペイロードはエクスポートされる前に圧縮されません。GZIP:エクスポートする前にペイロードを圧縮するには、これを選択します。gcpParameters.gcpProjectId
弦
はい
このパラメーターは、Google Cloud Platform(GCP)プロジェクトの一意の識別子を表します。例を以下に示します。
google-project-id
gcpParameters.pubsubTopicId
弦
はい
このパラメーターは、cloudアプリケーション内でメッセージを送受信するために使用される、Google Cloud Pub/Subのトピックを指定します。例を以下に示します。
pub-sub-topic-id.
サンプルリクエスト streamingExportUpdateRule (
description : " ADD_RULE_DESCRIPTION "
name : " PROVIDE_RULE_NAME "
payloadCompression : DISABLED
gcpProjectId : " project-id "
pubsubTopicId : "pub-sub-topic-id"
応答 :ルールIDとステータスを含む応答を受け取ります。
ストリームを有効にする 既存のストリーミングルールを有効にし、リアルタイム処理や他のサービスとのインテグレーションのためにデータの継続的なエクスポートを促進するには、こちら を参照してください。
ストリームを無効にする 既存のストリーミングルールを無効にして、データの継続的なエクスポートを停止するには、こちら を参照してください。
ストリームを削除する ストリーミングルールを削除し、そのルールに関連するすべてのデータエクスポートを停止するには、こちら を参照してください。
輸出圧縮を理解する データをエクスポートする前に圧縮することを選択できます。この機能はデフォルトでオフになっています。圧縮により、データ制限の超過を防ぎ、アウトバウンドデータコストを削減できます。
ruleParametersのpayloadCompressionフィールドを使用して圧縮を有効にできます。このフィールドには、次のいずれかの値を指定できます。
DISABLED: ペイロードはエクスポート前に圧縮されません。指定しない場合、 payloadCompressionはデフォルトでこの値になります。GZIP:エクスポートする前に、ペイロードをGZIP形式で圧縮します。現在利用可能な圧縮形式は GZIP のみですが、将来的にはさらに多くの形式を利用できるようになる可能性があります。
既存の AWS エクスポート ルールで圧縮が有効になっている場合、Kinesis Firehose からの次のメッセージには圧縮データと非圧縮データの両方が含まれる可能性があります。これは、Kinesis Firehose 内のバッファリングが原因です。これを回避するには、圧縮を有効にする前にエクスポート ルールを一時的に無効にするか、圧縮データのみが流れる新しい Kinesis Firehose ストリームを作成します。
この問題が発生し、S3 または別のファイル ストレージ システムにエクスポートしている場合は、次の手順に従ってデータの圧縮部分を表示できます。
オブジェクトを手動でダウンロードします。 圧縮データを新しいファイルにコピーして、オブジェクトを 2 つの個別のファイルに分割します。 新しい圧縮専用データ ファイルを解凍します。 圧縮データを取得したら、それを S3 (または使用している他のサービス) に再アップロードし、古いファイルを削除できます。
S3 または別のファイル ストレージ システムでは、オブジェクトが連続して追加される複数の GZIP エンコードされたペイロードで構成される場合があることに注意してください。 したがって、解凍ライブラリには、このような連結された GZIP ペイロードを処理する機能が必要です。
AWSでの自動解凍 データが AWS に到着したら、自動的に解凍するオプションが必要になる場合があります。データを S3 バケットにストリーミングしている場合、自動解凍を有効にする方法は 2 つあります。
メタデータ設定 Lambda 関数 オブジェクトに正しいメタデータ セットがある場合、AWS は S3 からダウンロードされたオブジェクトを自動的に解凍します。このメタデータを、セットされた S3 オブジェクトにダウンロードされたすべての新しいオブジェクトに自動的に適用する関数を作成しました。設定方法は次のとおりです。
ここに 移動し、リポジトリをローカルにクローンし、README ファイルに記載されている手順に従って、ラムダ関数を含む ZIP ファイルを生成します。関数のIAM ロール を作成します。 ロールを作成する ときは、信頼できるエンティティ タイプを必ず「AWS サービス」として設定し、ユースケースとして「Lambda」を設定してください。このロールには、次の権限を持つポリシーが必要です: s3:PutObjectおよびs3:GetObject 。 AWS で、 Lambda 関数のページ に移動します。
Create function をクリックします。
Java 11 ランタイム環境を選択します。
Change default execution role > Use an existing role をクリックします。 ステップ 2 で作成したロールをここに入力します。
下にスクロールしてCreate function をクリックします。
関数が作成されたら、 Upload from をクリックし、ドロップダウンから.zip or .jar file を選択します。
表示されるボックスからUpload をクリックし、手順 1 で作成した ZIP ファイルを選択します。
アップロードが完了したら、 Save をクリックしてポップアップ ボックスを閉じます。
ハンドラーを追加して、 Runtime settings を編集します。 私たちが提供する関数では、ハンドラーはmetadatasetter.App::handleRequestです。
あとは、この Lambda関数が S3 オブジェクトの作成時にトリガーされるようにするだけです。 Add trigger をクリックして設定を開始します。
ドロップダウンから、ソースとしてS3 を選択します。
メタデータを適用する S3 バケットの名前をBucket フィールドに入力します。
イベント タイプからデフォルトのAll object create events を削除します。 [イベント タイプ] ドロップダウンから、 PUT を選択します。
Recursive invocation チェックボックスをオンにして、右下のAdd をクリックします。
Lambda 関数は、新しく追加されたすべての S3 オブジェクトに圧縮メタデータを自動的に追加し始めます。
Azureでの自動解凍 データを Azure にエクスポートしている場合は、 Stream Analytics ジョブ を使用して、イベント ハブに保存されているオブジェクトの解凍されたバージョンを表示できます。これを行うには、次の手順に従います。
このガイドの ステップ 16 までに従ってください。
ステップ13では、問題を起こすことなく出力と同じイベントハブを使用することを選択できますが、ステップ17に進んでジョブを開始する予定の場合、このアプローチはテストされていないため推奨されません。 ストリーミング分析ジョブの左側のペインで、Inputs をクリックし、設定した入力をクリックします。
右側に表示されるペインの一番下までスクロールし、次の設定で入力を構成します。
イベントシリアル化形式:JSON エンコード: UTF-8 イベント圧縮タイプ: GZip ペインの下部にあるSave をクリックします。
画面の横にあるQuery をクリックします。 Input preview タブを使用すると、この画面からイベント ハブにクエリを実行できるようになります。
GCPでの自動解凍 GCP Cloud Storageでは、メタデータがContent-Encoding: gzipに設定されている場合、ダウンロード時にオブジェクトが自動的に解凍されます。詳細については、GCPドキュメント をご覧ください。