よく寄せられる質問
内容
質問 : データアーカイブパイプライン JAR ファイル に資格情報を含める方法を教えてください。
A : セキュリティ上の理由から、データアーカイブパイプライン JAR ファイル に資格情報を追加することはお勧めしません。 プラットフォームは、ユーザーに代わってパイプラインの資格情報を管理します。 資格情報の詳細については、以下を参照してください。
『 ID およびアクセス管理ガイド』を参照してください
質問 : アプリケーションログの検索方法を教えてください。
A : 参照先 :
アプリケーションログを検索します
質問 : データアーカイブパイプラインの監視方法を教えてください。
A : 参照先 :
ProductName 変数にメトリクスがありません
パイプライン監視
質問 : データアーカイブパイプラインのシステムメトリクスがありますか ?
A : データアーカイブライブラリは、 Flink ストリーミング実行環境を内部的に使用します。 使用可能なシステムメトリクスについては、次のトピックを参照してください。
Flink メトリクス
これらのシステムメトリクスのホームにアクセスする には、 HERE platform ポータルで、ツール、監視と警告の順にクリックします。 [ ホーム ] をクリックし、 Flink メトリクスを検索してホームをクリックします。 パイプライン ID を選択 すると、メトリクスを参照できます。
質問 : メッセージがアーカイブされない理由
A : 次の場合、メッセージはアーカイブされず、 Data Archiving ライブラリは次のメッセージの処理を続行します。
getKeys()
、 getMultipleKeys()
または getSplittedKeys()
メソッドがスロー exception
される null
か、またはを返します。 - 属性値のデータ型が、インデックス定義で定義されているデータ型と一致しません。 (
timewindow
たとえば、として提供 string
されます ) 。 timewindow
属性または heretile
属性の値はです null
。 heretile
値が zoomLevel
インデックス定義で指定された値と一致しません。
注
timewindow
およびheretile
以外の属性の値 がnull
の場合 、メッセージはアーカイブされます。
詳細については 、「インデックス属性の検証ルール」を参照してください
質問 : 失敗したデータアーカイブパイプラインを調査する方法を教えてください。
A : ご利用のパイプラインバージョンにはログ URL が添付されています。 クリックすると 、 Splunk に移動します。 HERE から、障害の調査を開始できます。 データアーカイブライブラリのためにパイプラインでエラーが発生したかどうかを確認するには、追加のフィルタを追加して検索クエリーを編集します。 データアーカイブライブラリのエラーフィルタについては、次の例を参照してください。
index=olp-here-test_common namespace=olp-here-test-j-d07b5ee2-cbbd-48f6-b0e3-5b0d87703fed "*DAL:*"
注
getKeys()
getMultipleKeys()
またはgetSplittedKeys()
メソッドから返されたマップに定義済みのインデックス属性がない場合、データアーカイブライブラリはパイプラインに失敗します。
timewindow
属性値は 、long
データ型 (エポック時間 ( ミリ秒単位) で表される必要があります。 heretile
属性値は 、long
データ型(HERE Tile ID)として表現する必要があります。
結果が見つからない場合は、データアーカイブライブラリ自体ではなく、ライブラリが依存するサービスの 1 つが失敗の原因となっている可能性があります。
- パイプライン
- Flink ランタイム
- ストリーム レイヤー
- HERE アカウント
トラブルシューティングの詳細については、以下を参照してください。
トラブルシューティング
A : 参照先 :
トラブルシューティング
質問 : 参照例を使用する場合、データアーカイブパイプラインの実行後に出力内容を解析する方法を教えてください。
A : バイナリデータを取得するには、以下を参照してください。
インデックス レイヤーからデータを取得します
以下に、参照例からの出力を解析する Java スニペットの例を示します。
の場合 avro-example
byte[] data = getBlobStoreData(datahandle)
Set<ArchivedMessage> setOfBlobMessages = new HashSet<>();
try {
setOfBlobMessages.addAll(AvroHelper.fromStream(new ByteArrayInputStream(data), ArchivedMessage.class));
} catch (Exception e) {
LOG.error("Unexpected error", e);
}
の場合 parquet-example
byte[] data = getBlobStoreData(datahandle);
List<SdiiMessage.Message> sdiiMessages = new ArrayList<>();
try {
Path tmpDir = Files.createTempDirectory("parquetTmp");
tmpDir.toFile().deleteOnExit();
Path parquetTmpFilePath = tmpDir.resolve(UUID.randomUUID().toString());
Files.write(parquetTmpFilePath, data);
ProtoParquetReader<SdiiMessage.Message.Builder> reader = new ProtoParquetReader<SdiiMessage.Message.Builder>(new org.apache.hadoop.fs.Path(parquetTmpFilePath.toString()));
while (true) {
SdiiMessage.Message.Builder sdiiMessageBuilder = reader.read();
if (sdiiMessageBuilder == null) {
break;
} else {
sdiiMessages.add(sdiiMessageBuilder.build());
}
}
reader.close();
parquetTmpFilePath.toFile().delete();
} catch (Exception e) {
LOG.error("Unexpected error", e);
}
の場合 protobuf-example
byte[] data = getBlobStoreData(datahandle);
List<SdiiMessage.Message> sdiiMessages = new ArrayList<>();
try {
SdiiMessageList.MessageList messageListProtoBuf = SdiiMessageList.MessageList.parseFrom(data);
sdiiMessages.addAll(messageListProtoBuf.getMessageList());
} catch (Exception e) {
LOG.error("Unexpected error", e);
}
↑ページトップへ