gpt4 book ai didi

java - 将 Web 方法写入 Hbase

转载 作者:行者123 更新时间:2023-12-01 11:52:14 25 4
gpt4 key购买 nike

我不是来自Java,所以我的问题可能很简单,但我需要明确的步骤来实现。

现有项目:连接到 Oracle 数据库以获取某些属性文件并将日志信息插入到某些表中的 Webmethods。

问题:很多时候数据库会出现故障,从而导致执行延迟。

新要求:我们必须用 Hbase 替换现有的 oracle 表。我已经使用 Pig 将代码写入 Hbase 中。但我真的不知道如何将实时数据写入Hbase。

我发现使用 Java 客户端或 Thrift 连接我可以编写。我需要非常详细的解释。我必须提交一个项目。请帮帮我。

最佳答案

您了解面向行的数据库,Hbase 是面向列的数据库。但是我们有 apache Phoenix。

Apache Phoenix 是 HBase 上的关系数据库层,作为客户端嵌入的 JDBC 驱动程序提供,旨在对 HBase 数据进行低延迟查询。 Apache Phoenix 获取您的 SQL 查询,将其编译为一系列 HBase 扫描,并协调这些扫描的运行以生成常规 JDBC 结果集。表元数据存储在 HBase 表中并进行版本控制,以便对先前版本的快照查询将自动使用正确的架构。直接使用 HBase API 以及协处理器和自定义过滤器,可以实现小型查询的毫秒级性能,或数千万行的秒级性能。

这可以轻松解决您的问题。 http://phoenix.apache.org/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Statement;

public class test {

public static void main(String[] args) throws SQLException {
Statement stmt = null;
ResultSet rset = null;

Connection con = DriverManager.getConnection("jdbc:phoenix:[zookeeper]");
stmt = con.createStatement();

stmt.executeUpdate("create table test (mykey integer not null primary key, mycolumn varchar)");
stmt.executeUpdate("upsert into test values (1,'Hello')");
stmt.executeUpdate("upsert into test values (2,'World!')");
con.commit();

PreparedStatement statement = con.prepareStatement("select * from test");
rset = statement.executeQuery();
while (rset.next()) {
System.out.println(rset.getString("mycolumn"));
}
statement.close();
con.close();
}
}

关于java - 将 Web 方法写入 Hbase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com