2017-03-29 12 views
0

私のアプリケーションでは、マップマップマップ(4レベルのネストマップ)のマップのためにAvroスキーマを定義する必要があります。私は最後のマップ(最終的な内部マップ)を除くすべてのレベルでキーを使用しています。私はスキーマの長所と短所を知りたい。パフォーマンスに問題はありますか?避ける方法Avroスキーマ内のマップマップマップ

+0

インポッシブルするための単純なスキーマを持つことになります。それはデータによって異なります。厳密に必要な場合、必ずしも4レベルのマップは問題ではありませんが、そうではないと思われます。 – Michael

+0

アプリケーションのパフォーマンスはどうですか? –

答えて

0

常にネストマップを使用しないでください。

AVROファイル形式はスキーマベースです。ネストされたマップを使用すると、スキーマの設計が難しくなります。また、avroはシリアル化技術に基づいて動作します。 "String"を使用して作業する場合は、正常に動作しますが、他のデータ型の場合は動作しません。

+0

スキーマ設計に問題はありません。私はすでにスキーマを設計しました。しかし、私はこの賛否両論を知りたいです –

+0

これはパフォーマンスの低下です。デシリアライゼーションのたびに、オブジェクト全体が再作成されます。ネストマップを使用する場合は、同じマップを再作成することがどれほど難しいか考えてください。 – Vijayakumar

0

あなたのスキーママップの選択>>を見ると、与えられたキーのために多くの価値があることを意味します。

これは、円柱のような円柱データストレージの検索を開始する古典的なケースです。

AVROを寄せ木で混合し、Avroスキーマを平坦化します。

ParquetはColumnarデータ形式なので、繰り返しデータは複数回は格納されませんが、1回だけ格納されます。

ORCを使用すると、あなたは答えてAVRO

http://bytepadding.com/big-data/spark/read-write-parquet-files-using-spark/

関連する問題