2017-09-25 4 views
0

私はAvroを使用してカフカシステムを供給しています。なぜAvroが作成されたのかと疑問に思っています。Jsonが適合しないAvroのシー​​ンは

JsonがRESTfulなリクエストのようなインターネット通信のためのものであり、AvroがHadoopエコシステムのためのものであることは間違いありませんか?

私はいくつかの回答をGoogle検索し、圧縮されたデータサイズと効率を比較しますが、新しいものを作成するには十分ではありません。

答えて

0

実際、安らかなリクエストは通常​​、jsonを使用してデータを交換します。

有効な理由はサイズと効率です。帯域幅、メモリ、およびストレージスペースを節約します。 jsonと比較すると、メッセージ全体をメモリにロードせずに特定のフィールドにアクセスするなどの操作にも非常に便利です。

個々のメッセージをより効率的に処理することで、何百万ものメッセージを処理する必要があるアプリケーションのスケールを簡単に調整できます。

+0

ありがとうございました。 **メッセージ全体を読み込まずに特定のフィールドにアクセスすることについての小さな例を教えてください。私はこれがAvroに関する本当に興味深い機能だと思います。 –

+0

データを読み込むときに、興味のあるフィールドのみを含むスキーマ定義を使用することができます.Avroは、外したスキップをスキップします。実際には、読んでいるときに、元のライタースキーマと必要なフィールドだけを持つ読者スキーマの2つのスキーマを指定します。これは、avroのスキーマ解決機能に依存します。これは主に発行側でフィールドを追加できるように設計されていましたが、コンシューマーは古いスキーマで新しいメッセージを読み取ることができます。 –

関連する問題