บ้านเรายังไม่ค่อยตื่นตัวเรื่อง Big Data กันสักเท่าไหร่ แต่พอดีผมได้มีโอกาสทำงานกับข้อมูลเดือนละหลักพันล้าน record / ใช้พวก relation database เอาไม่อยู่ครับ query ง่าย ๆ ใช้เวลากันครึ่งค่อนวันเลยทีเดียว เจ้า Big Data เลยเป็นอีกทางเลือก มาลองดูกันว่าจะเข้าไปคุยกับมันยังไงดี ในที่นี้เป็น Cloudera Pack (Hadoop,hive,impala...)
- library ที่ต้องใช้
1. Jdbc Hive ตัวอย่างการเขียน ดึงข้อมูลมาแสดง
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class HiveConnection {
private static final String driver = "org.apache.hive.jdbc.HiveDriver";
private static final int hive_port = 10000;
private static final String host = "127.0.0.1";
private static final String db = "hadoopdb";
public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName(driver);
return DriverManager.getConnection("jdbc:hive2://" + host + ":" + hive_port + "/" + db);
}
public static void main(String[] args) {
System.out.println("\n=============================================");
System.out.println("start....");
Connection con = null;
try {
con = getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from table_name");
while (rs.next()) {
System.out.println("-" + rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (Exception e) {
}
}
}
}
2. Jdbc Impala ตัวอย่างการเขียน ดึงข้อมูลมาแสดง
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ImpalaConnection {
private static final String driver = "org.apache.hive.jdbc.HiveDriver";
private static final int impala_port = 21050;
private static final String host = "127.0.0.1";
private static final String db = "hadoopdb";
public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName(driver);
return DriverManager.getConnection("jdbc:hive2://" + host + ":" + impala_port + "/" + db + ";auth=noSasl");
}
public static void main(String[] args) {
System.out.println("\n=============================================");
System.out.println("start....");
Connection con = null;
try {
con = getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from table_name");
while (rs.next()) {
System.out.println("-" + rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (Exception e) {
}
}
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น