gpt4 book ai didi

hadoop - 如何将数据导入 HBase Hadoop Workflow

转载 作者:可可西里 更新时间:2023-11-01 16:57:09 27 4
gpt4 key购买 nike

我正在构建一个网络分析应用程序,我想要一个低延迟的休息端点来获取 json 并将其存储在 hbase 中。

我读过有关 kafka 和 storm 的文章,这似乎是一种将数据导入 hbase 的好方法,它处理的数据似乎是平面结构,我无法想象它如何与我的用例一起工作。

作为我要收集的数据的一个例子,下面是 json

{
page: "www.url.com/checkout.html",
cat: "checkout"
browser: "IE 6",
ipAddress: "127.0.0.1",
userId: 10000,
session: 20000,
timeOnPage: null,
user: {
name: "John", gender: "Male", age: 25, lat: 0.1, long: 0.1
},
purchased: {
products: [
{ name: prod1, cost: 100 },
{ name: prod2, cost: 200 },
{ name: prod3, cost: 300 }
],
total: 600
},
mouseMovement: [

]
}

如您所见,数据不是平面模型,而且一些数据将在稍后的时间点更新。

我曾想过这个数据结构会很好地适应 hbase 吗?但也许我完全错了?

最佳答案

您可以将 hive 与 Hbase 集成并使用 HiveQL 进行查询:

例如你的 Json 文件:

 {"id": 123, "name": "Ram", "role":"TeamLead"}
{"id": 456, "name": "Silva", "role":"Member"}
{"id": 789, "name": "Krishna", "role":"Member"}

您可以使用 get_json_object 函数将数据解析为 JSON 对象。例如,如果您使用 JSON 数据创建临时表:

CREATE TABLE staging (json STRING);
LOAD DATA LOCAL INPATH '/local/path/to/jsonfile' INTO TABLE staging;

然后使用get_json_object 提取要加载到表中的属性:

INSERT OVERWRITE TABLE hbase_table_emp SELECT
get_json_object(json, "$.id") AS id,
get_json_object(json, "$.name") AS name,
get_json_object(json, "$.role") AS role
FROM staging;

希望对你有帮助

关于hadoop - 如何将数据导入 HBase Hadoop Workflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552104/

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