gpt4 book ai didi

mysql - 将文件中的数据加载到特定的 mysql 分区

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

我的系统每小时都会生成一个 .tsv 文件,以突出显示过去一小时内访问了哪些目录。该文件大约有 100,000 行,格式如下:

dirName    parentDirHashcode    dirHashcode    numAccesses

我一直在尝试以编程方式将这些文件加载​​到 mysql 表中,但我想向表中添加一些额外的数据 - 代表日期的日期列(例如 20150730)和一个小时代表小时的列(例如 21)。

Apache Hive中,这可以通过对表进行分区(按日期,然后按小时)来完成 - 在mysql中有没有办法做到这一点? p>

我尝试将数据本地 infile 'file.tsv' 加载到表 newTable, date=20150730, hour=21 但它不起作用:(

如果有帮助,newTable 的架构为 (dirName varchar(1024), ParentHash int, hash int, accesses bigint, date int, hour int)

最佳答案

根据@marc-b的回答,我最终这样做了:

CREATE TABLE newTable (dirname VARCHAR(1024), parentHash INT, hash INT, accesses BIGINT, date INT, hour INT)
PARTITION BY RANGE (hour)
SUBPARTITION BY HASH (date)
SUBPARTITIONS 31 (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (12),
PARTITION p2 VALUES LESS THAN (18),
PARTITION p3 VALUES LESS THAN MAXVALUE
);

LOAD DATA LOCAL INFILE 'file.tsv' INTO TABLE newTable (dirName, parentHash, hash, accesses)
SET date=20150730, hour=12;

效果非常好。

关于mysql - 将文件中的数据加载到特定的 mysql 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31865495/

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