1つのHiveテーブルt_eventは、demo_readデータベースにあります。テーブルは100,000以上のレコードを持っています。どのようにJava APIを介してレコードを読み取る。Javaを使用してHiveテーブルからレコードを読み取ります(HiveメタストアクライアントまたはHatchalogまたはWebHcat経由)
0
A
答えて
0
まあ、実際には、そのデータをすべて読み取る必要はありません。データを変換してデータベースにアップロードするか(データが比較的小さい場合)、共通形式(CSV、JSONなど)にエクスポートする必要があります。
Hive CLI、WebHCatまたはJDBC Hiveドライバを使用してデータを変換できます。
0
Hive JDBCドライバを使用して、Hiveテーブルに接続できます。以下のコードでテストやPOCを行っても問題はありませんが、エンドテーブルをHBase(Phoenixのチェック)やMongoDB、または待ち時間の少ないリレーショナルベースのテーブルに移動することをお勧めします。
パフォーマンスを向上させるために、Hiveでは動的パーティションや何らかのクラスター手法を使用することもできます。次のコードを使用することができます。私はそれをテストしていません(サンプルとして使用します)。
package org.hive.utils;
import java.sql.*;
public class HiveDB {
public static final String HIVE_JDBC_DRIVER = "org.apache.hadoop.hive.jdbc.HiveDriver";
public static final String HIVE_JDBC_EMBEDDED_CONNECTION = "jdbc:hive://";
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
private Statement getConnection() throws ClassNotFoundException,
SQLException {
Class.forName(HIVE_JDBC_DRIVER);
Connection connection = DriverManager.getConnection(
HIVE_JDBC_EMBEDDED_CONNECTION, "", "");
Statement statement = connection.createStatement();
return statement;
}
public static void main(String[] args) {
HiveDB hiveDB = new HiveDB();
try {
Statement statement = hiveDB.getConnection();
//print each row
ResultSet resultSet = statement.executeQuery("select * from demo_read.t_event");
int columns = resultSet.getMetaData().getColumnCount();
while (resultSet.next()) {
for (int i = 0 ; i < columns; ++i) {
System.out.print(resultSet.getString(i + 1) + " ");
if (i == 100) break; //print up to 100th rows
}
System.out.println();
}
statement.close; //close statement
} catch (ClassNotFoundException e) {
//
} catch (SQLException e) {
//
}
}
}
関連する問題
- 1. LIVEまたはHIVEでRLIKEを使用してテーブルを結合
- 2. hive -e '<hiveコマンド>を使用してhive loadコマンドを実行します。
- 3. ブタのHiveまたはフラットファイルから読みやすくするには?
- 4. Cloudera Hiveはテーブルをハングします
- 5. HiveテーブルにHiveテーブルとしてORCとして一時的なHiveテーブルを読み込むことができません
- 6. InformaticaからApache HIVEテーブルを読む
- 7. Spark 2.2.0を使用してHiveメタストア2.xから読み取る
- 8. HiveでTotalOrderPartitionerを使用できません:パーティションファイルを読み取れません
- 9. JDBCを使用してHiveテーブルから配列フィールドを選択します。
- 10. Javaを使用してsparkでJavaDStream <String>をHiveテーブルに格納する方法はありますか?
- 11. JAVAを使用してHIVEでテーブルを作成する
- 12. Djangoモデルから、またはAPI経由でデータを読み込みますか?
- 13. 2TBテーブルをRDSインスタンスからS3またはHiveにエクスポートする方法は?
- 14. SparkSQLを使用してHive/HBaseテーブルをクエリするためのJava/Scalaコードサンプル?
- 15. hiveContext経由のSpark JobでHive関数を使用する
- 16. Hadoop Hiveは配列から位置を取得します
- 17. SQLサーバデータベースをHDFSまたはHIVEにインポート
- 18. JavaまたはC#を使用してデータシートから読み取る
- 19. パイプまたはストリーム経由でsnortログを読み取る
- 20. RDBMSテーブルからHiveテーブルへのインクリメンタルインポートとともに更新されたレコードを取得する方法は?
- 21. Hiveテーブル名を使用してSqoopエクスポートハイブテーブルからRDBMSへ
- 22. Hiveテーブルのデータをnifi経由のkafkaトピックに入れよう
- 23. シーケンスファイルとして保存されたHiveテーブルにテキストファイルを読み込む方法
- 24. Hadoop-Hiveからテーブルを削除/切り捨てる方法は?
- 25. Hiveデータソースを使用したSparkSQLはhead()の全テーブルスキャンを行いますか?
- 26. Hiveを使用したApache Atlasベース、メタデータはどこに保存されていますか?タイタングラフリポジトリまたはRDBMSでHive?
- 27. Pythonを使用したhive udfのランタイムエラー
- 28. Spark HiveContext:Spark EngineまたはHive Engine?
- 29. HIVEでテーブルを削除中にエラーが発生しました
- 30. テーブルから特定の列数のみを選択します。Hive