2016-04-17 24 views
0

ハイブのバイナリおよびストリングのデータ型には最大限の制限がありますか。この考え方は、4 GBを超えるデータを格納できるようにすることです。 Oracleは、CLOBデータ型の列に8 TBのデータをサポートします。 Hiveを通して同様の記憶容量を持っていますか?ハイブバイナリおよびストリングのデータ型

私はhdfsにデータを格納するために使用している形式は、寄木張りであり、文字列/バイナリデータを格納するために、私はbytearrayデータ型と注釈を一緒に使用します。寄木細工フォーマットのbytearrayデータ型の最大限度を知るにはどうすればよいですか?

ドキュメントでは、バイト配列が任意の長さである可能性があります。つまり、最大8 TB以上のデータを格納できるということです。

答えて

0

いいえ、HiveはBLOB/CLOBデータ型をサポートしていません。 STRINGデータ型は最大2GBまでのデータをサポートしますが、それはあなたの要件には十分ではありません。

しかし、Hiveは主に、基礎となるHDFSファイルシステムに格納されたデータを取得するためにSQLを使用するクエリツールであり、HDFSは任意のサイズのファイルを確実に処理できます。 (もっと詳しくは:Hadoop HDFS maximum file size

私はあなたの目標がHadoopにOracleに格納された値を取得することを推測しています。あなたの目標が実際にだったのであれば、それ以降のHiveクエリの値をに返すと驚いています。その場合、あなたは不運です。

OracleからデータをインポートするためにSqoopを使用している場合は問題ありませんが、特別な考慮事項があります。 documentation on Large Objects in section 7.2.9を参照してください。

また、ソースシステムにHadoopコマンドラインツールがインストールされている限り、Hadoopファイルシステムコマンド(例:getまたはput)を使用して、大きなオブジェクトをHadoopに移動することもできます。

いずれの場合でも、ラージオブジェクトの内容にアクセスする必要があるロジック(おそらくイメージなど)は、Oracleと同じようにSQL/CLOB以外の戦略を使用する必要があります。おそらくコンテンツのHDFSファイル名を参照し、表示のために必要なときにgetを参照しますか?

これは役に立ち、私は正しい質問に答えてくれたと思います。

関連する問題