我的Cassandra模式包含一个表,其中一个分区键是一个时间戳,一个parameter列是一个集群键。
每个分区都包含10k+行。这是以每秒一个分区的速度记录数据。
另一方面,用户可以定义“数据集”,而我有另一个表,其中包含“数据集名称”作为分区键,以及一个集群列,该列是引用另一个表的时间戳(因此"dataset“是分区键列表)。
当然,我想做的事情看起来像是卡桑德拉的反模式,因为我想加入两个表。
但是,使用Spark,我可以运行这样的查询并执行JOIN。
SELECT * from datasets JOIN data
WHERE data.timestamp = dat
我在配置单元中遇到了配置单元默认分区(空分区)的问题。我将在这里简要地解释一下情况。我有一个蜂窝主表,数据摄取每天都会发生在这个表上。但不知何故,当数据被摄取到hive表中时,出现了一些错误,分区显示为_hive_default_partition_,或者在我的理解中是null分区。
我需要从hive表中删除分区。(它是外部表)...
我正在使用hive版本1.1和CDH版本5.4.8..
我尝试了下面的语法,但它对我不起作用。
alter table "tablename" drop partition(partn='_hive_default_partition_)
我有一个按列X划分的表。但是,SSMS显示缺少索引(Impact 80.23):为以下查询在dbo.上创建非聚集索引[]
select count(*) from table where X = 'xxx'
是否仍有必要在分区列X上创建索引?在一张大桌子上,它的密度会很低。
编辑:
我试过select max(x) from table。它比在非分区表上运行类似的SQL花费的时间长得多,该表在X上有一个索引。启用show statistics IO on后,它显示对分区表(没有X索引)的查询比具有索引的非分区表(扫描计数:1,逻辑读取:4)具有更多的扫描计数(170)和逻辑读取
我一直在关注这篇关于如何使用Hive分析推特数据的文章:
我已经设置了flume来收集twitter数据并写入HDFS。我已经设置了一个指向相同HDFS位置的配置单元表。
当我在配置单元中运行类似这样的命令时:从推文中选择entities.user_mentions.screen_name;
我得到的响应如下: OK Time Time: 0.16秒。
无论我运行什么查询,我都得不到任何结果。
由于我不熟悉配置单元,我是希望在配置单元命令行中看到结果,还是必须从mySQL中挖掘结果。mySQL是metastore。
我可以使用以下命令将数据加载到蜂箱中:
LOAD DATA INPATH '/xx/person/a.csv' INTO TABLE person PARTITION (age = 30);
在上面的语句中,age=30是必须存储数据的分区。
如果a.csv实际上有年龄列呢?是否有一种方法可以使单元格使用一个LOAD数据语句正确地将每一行a.csv插入到正确分区下的person表中?
我有一个进程,需要将许多行,可能是成千上万行,从一个暂存表复制到另一个将处理它们的表中。
通常,我只想说
insert into production_table select * from staging_table
但是这个语句可能需要一个小时才能运行,因此为了不锁定处理表,我们使用客户端应用程序中的以下逻辑将接下来的1000行移动到生产表中:
do
{
max_id = select max(id) from production_table where jobid = YYY
insert into production_table (jobid, ...)
我有两个模式: TBCAM和AR_TBCAM。在TBCAM中有一个名为BKP_COST_EVENT的表,我对该表进行了分区,并将分区数据移动到AR_TBCAM模式中另一个名为BKP_COST_EVENT_P2016的简单表中。现在,数据已通过以下查询移动到AR_TBCAM模式
ALTER TABLE BKP_COST_EVENT EXCHANGE PARTITION P2016 WITH TABLE AR_TBCAM.BKP_COST_EVENT_P2016 INCLUDING INDEXES WITHOUT VALIDATION;
现在,我希望将分区数据返回到原始表BKP_COST_EVEN
我有一个按天分区的配置单元表(例如,20151001,20151002,...)。是否有一个配置单元查询,以一种可以在嵌套子查询中使用的方式列出这些分区?
这就是说,我可以这样做:
SELECT * FROM (SHOW PARTITIONS test) a where ...
该查询-
SELECT ptn FROM test
返回与测试表中的行数相同的行数。我希望它只返回与分区数一样多的行(不使用DISTINCT函数)
我正在处理一个奇怪的情况,我有小表和大表要使用spark处理,而且它必须是一个spark工作。
为了实现最佳性能目标,我需要设置一个名为
spark.sql.shuffle.partitions = 12 for small tables and
spark.sql.shuffle.partitions = 500 for bigger tables
我想知道如何在spark中动态更改这些属性?我可以有多个配置文件并在程序中调用它吗?
我有两个蜂巢表T1和T2。T1是由date1,hour1列划分的外部表。它还有一个名为date2 (不同于date1)的日期列。
T2是一个由date2分区的单元表。
我将每小时递增地获取数据,并且可以轻松地将其添加到带有动态分区的表T1中。
我希望找到一种从T1中选择数据并将数据增量加载到由date2分区的T2中的有效方法。
这就是我现在要做的
insert into T2
select
*,
date2
from
(
select * from T1 where date1="a constant date" and hour1 =