建表bucketnum起什么作用
建表时 bucketnum 起什么作用?bucketnum 的信息是对应 HDFS block 么?修改表的 bucketnum 为什么需要重新 reorgnize 和 distribued?
建表时 bucketnum 起什么作用?bucketnum 的信息是对应 HDFS block 么?修改表的 bucketnum 为什么需要重新 reorgnize 和 distribued?
bucketnum 用于指定一个表分成多少个 bucket,每个 bucket 内包含的数据量相同。bucketnum 的信息不是对应 HDFS block,因为一个 HDFS block 可能会被多个 bucket 中的数据所调用。
如果修改表的 bucketnum,需要重新 reorgnize 和 distribued 是因为:
reorgnize:需要重新组织表内数据,将数据按照新的 bucketnum 重新分配到每个 bucket 中。
distributed:需要重新在集群中分配数据,将新的 bucketnum 信息更新到集群的每个节点上。这是因为 Spark SQL 在查询时会针对 bucket 进行数据本地化的操作,如果 bucketnum 发生修改后不进行重新分配,会导致查询效率下降。
bucketnum 对应计算集群的节点,每个节点将对应的 bucketnum 读取完成后,在根据 distributed 列将数据 hash 打散到每一个计算节点上。
bucketnum 用于指定一个表分成多少个 bucket,每个 bucket 内包含的数据量相同。bucketnum 的信息不是对应 HDFS block,因为一个 HDFS block 可能会被多个 bucket 中的数据所调用。
如果修改表的 bucketnum,需要重新 reorgnize 和 distribued 是因为:
reorgnize:需要重新组织表内数据,将数据按照新的 bucketnum 重新分配到每个 bucket 中。
distributed:需要重新在集群中分配数据,将新的 bucketnum 信息更新到集群的每个节点上。这是因为 Spark SQL 在查询时会针对 bucket 进行数据本地化的操作,如果 bucketnum 发生修改后不进行重新分配,会导致查询效率下降。
你好!
bucketnum 用于指定一个表分成多少个 bucket,每个 bucket 内包含的数据量相同。bucketnum 的信息不是对应 HDFS block,因为一个 HDFS block 可能会被多个 bucket 中的数据所调用。
如果修改表的 bucketnum,需要重新 reorgnize 和 distribued 是因为:
reorgnize:需要重新组织表内数据,将数据按照新的 bucketnum 重新分配到每个 bucket 中。
distributed:需要重新在集群中分配数据,将新的 bucketnum 信息更新到集群的每个节点上。这是因为 Spark SQL 在查询时会针对 bucket 进行数据本地化的操作,如果 bucketnum 发生修改后不进行重新分配,会导致查询效率下降。