- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 csv 格式的“大”文件(159 G),我已使用 Sqlite3 和 C 将其插入到数据库表中。现在,实际的 csv 文件有 1,232,799,308 行(10 亿+)。但仅插入了 (123,254,689)。我有三个问题:
1) 如何将插入的数据与 csv 文件中的实际数据进行比较?我的意思是我想知道感兴趣的数据是否来自一个 block (即从第 1 行到第 100,000,000 行)还是随机的?
2) 有没有办法根据采样率(平均值、标准差和误差幅度)知道插入的行是否代表整个总体?
3) 代码是否有问题,只插入了 10% 的行!?
提前感谢大家的帮助:)
代码在C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <sqlite3.h>
#define INPUTDATA "/nobackup/DSS/clusterdata-2011-1/working_data/task_usage.csv"
#define DATABASE "/nobackup/DSS/clusterdata-2011-1/working_data/google.db"
#define TABLE "CREATE TABLE IF NOT EXISTS task_usageBS(startendtime TEXT, jobID TEXT, taskindex TEXT, machineID TEXT, CPUusage TEXT, MEMusage TEXT, assignedMEM TEXT, unmappedpagecacheMEMusage TEXT, pagecacheMEMusage TEXT, maxMEMusage TEXT, diskIOtimeMEAN TEXT, localdiskspaceusedMEAN TEXT, CPUusagemax TEXT, diskIOtimemax TEXT, cyclesperinstructionCPI TEXT, MEMaccessesperinstructionMAI TEXT, samplingrate TEXT, aggregationtype TEXT, PRIMARY KEY (startendtime, jobID, taskindex), FOREIGN KEY(jobID) REFERENCES job_events(jobID), FOREIGN KEY(taskindex) REFERENCES task_events(taskindex), FOREIGN KEY(machineID) REFERENCES machine_events(machineID))"
#define BUFFER_SIZE 1024
int main(int argc, char **argv) {
sqlite3 * db;
sqlite3_stmt * stmt;
char * sErrMsg = 0;
const char * tail = 0;
int nRetCode;
int n = 0;
clock_t cStartClock;
FILE * pFile;
char sInputBuf [BUFFER_SIZE] = "\0";
char * sTS = 0; /* startendtime */
char * sJI = 0; /* jobID */
char * sTI = 0; /* taskindex */
char * sMI = 0; /* machineid */
char * sCUM = 0; /* CPUusageMEAN */
char * sMU = 0; /* MEMusage */
char * sAM = 0; /* assignedMEM */
char * sUPCMU = 0; /* unmappedpagecacheMEMusage */
char * sPCMU = 0; /* pagecacheMEMusage */
char * sMMU = 0; /* maxMEMusage */
char * sDIOTM = 0; /* diskIOtimeMEAN */
char * sLDSUM = 0; /* localdiskspaceusedMEAN */
char * sCUMAX = 0; /* CPUusagemax */
char * sDIOTMAX = 0; /* diskIOtimemax */
char * sCPI = 0; /* cyclesperinstructionCPI */
char * sMAPI = 0; /* MEMaccessesperinstructionMAI */
char * sSR = 0; /* samplingrate */
char * sAT = 0; /* aggregationtype */
char sSQL [BUFFER_SIZE] = "\0";
/*********************************************/
/* Open the Database and create the Schema */
sqlite3_open(DATABASE, &db);
sqlite3_exec(db, TABLE, NULL, NULL, &sErrMsg);
/*********************************************/
/* Open input file and import into Database*/
cStartClock = clock();
sprintf(sSQL, "INSERT INTO task_usageBS VALUES (@TS, @JI, @TI, @MI, @CUM, @MU, @AM, @UPCMU, @PCMU, @MMU, @DIOTM, @LDSUM, @CUMAX, @DIOTMAX, @CPI, @MAPI, @SR, @AT)");
sqlite3_prepare_v2(db, sSQL, BUFFER_SIZE, &stmt, &tail);
//sqlite3_exec(db, sSQL, NULL, NULL, &sErrMsg);
sqlite3_exec(db, "BEGIN TRANSACTION", NULL, NULL, &sErrMsg);
pFile = fopen (INPUTDATA,"r");
while (!feof(pFile)) {
fgets (sInputBuf, BUFFER_SIZE, pFile);
sTS = strtok (sInputBuf, ",");
sJI = strtok (NULL, ",");
sTI = strtok (NULL, ",");
sMI = strtok (NULL, ",");
sCUM = strtok (NULL, ",");
sMU = strtok (NULL, ",");
sAM = strtok (NULL, ",");
sUPCMU = strtok (NULL, ",");
sPCMU = strtok (NULL, ",");
sMMU = strtok (NULL, ",");
sDIOTM = strtok (NULL, ",");
sLDSUM = strtok (NULL, ",");
sCUMAX = strtok (NULL, ",");
sDIOTMAX = strtok (NULL, ",");
sCPI = strtok (NULL, ",");
sMAPI = strtok (NULL, ",");
sSR = strtok (NULL, ",");
sAT = strtok (NULL, ",");
sqlite3_bind_text(stmt, 1, sTS, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 2, sJI, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 3, sTI, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 4, sMI, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 5, sCUM, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 6, sMU, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 7, sAM, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 8, sUPCMU, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 9, sPCMU, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 10, sMMU, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 11, sDIOTM, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 12, sLDSUM, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 13, sCUMAX, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 14, sDIOTMAX, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 15, sCPI, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 16, sMAPI, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 17, sSR, -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 18, sAT, -1, SQLITE_TRANSIENT);
sqlite3_step(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_reset(stmt);
n++;
}
fclose (pFile);
sqlite3_exec(db, "END TRANSACTION", NULL, NULL, &sErrMsg);
printf("Imported %d records in %4.2f seconds\n", n, (clock() - cStartClock) / (double)CLOCKS_PER_SEC);
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
最佳答案
如何在sqlite3中使用.import导入数据。
sqlite3 可以从 CSV 文件导入数据,假设满足很少的条件,例如。数字字段中的小数点分隔符与您的区域设置匹配,文本编码也与您的区域设置匹配。当然,目标表中的列数应与 CVS 文件中的字段数匹配。
如果满足这些条件,您可以简单地调用以下代码:
sqlite3 db.sqlite
.import data.csv my_table
其中 db.sqlite 是您的数据库文件,其中包含所有必需的架构,data.csv 是包含源数据的 CSV 文件,my_table 是目标表。
关于mysql - 检查插入数据的完整性 - sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25894700/
我想要一些概念上的澄清。为了证明问题是 NP 完全的,我们使用归约。 现在假设我有 L<=L'。是从 L 减少到 L' 还是我也可以用相反的方式来减少?即我能否证明如果 L 可以使用 L' 求解,那么
考虑不相交的哈密顿路径问题: 输入:一个可能是有向或无向的图 输出:此图是否至少存在 2 条边不相交的哈密顿路径?边不相交意味着没有一条边被两条路径共享。 证明不相交哈密顿路径是 np-完全的。 有人
我理解为什么有界度生成树被认为是度数为 2 的 NP 完全(这是哈密顿路径问题的一个实例),但我不明白为什么这适用于度数 > 2。如果有人可以解释一下为什么这是大于 2 的 NP 完全问题,这将是最有
我正在实现一个 Django 网站,其中上传的文件在保存到服务器 (/media) 之前使用用户提供的 key 进行加密。当用户希望查看它们时,系统会提示他们输入 key ,加密文件被解密,然后显示给
我想用nodejs列出指定目录中的所有文件。 var fs = require('fs'); var path = require('path'); var walk = function(direc
在我的文件夹 assets/data 中,有很多包含我的应用静态数据的 XML 文件。 对于某人来说,检索 APK、修改其中的一部分并安装到设备上真的很容易。 我想通过检查我的 assets/data
我正在努力将我的备份脚本从 shell 转换为 Python。我的旧脚本的功能之一是通过执行以下操作检查创建的 tarfile 的完整性:gzip -t。 这在 Python 中似乎有点棘手。 似乎唯
我正在尝试将包含带有单独 CSS 和 js 文件的 HTML 脚本的 php 文件导入另一个包含我的页眉和页脚的 php 文件。页眉和页脚来自一个模板,该模板使用非常困惑和令人费解的 CSS,基本上对
使用 Flask,我试图验证 cookie 没有被篡改。现在,如果我更改 cookie 值,它只会抛出一个错误,但我想检查代码 is_valid(session['user_id']) 并重定向/重置
在 PHP(和 MySQL)中,我们有许多技术来确保输入的数据有效且安全。添加斜杠、MySQL 的转义字符串和正则表达式是我们经常使用的一些。 我已经看到此链接,该链接对该主题进行了非常初步的介绍,但
下面的代码使用了不安全的 GeneralizedNewtypeDeriving扩展中断 Data.Set通过插入具有不同 Ord 的不同元素实例: {-# LANGUAGE GeneralizedNe
我刚刚在 NPM 上创建了一个新包(这非常简单),我对如何维护包的完整性感兴趣。任何人都可以发布软件包的新版本吗?或者这仅限于我的用户帐户? 如果任何人都可以发布对包的更改,如何监控他们的修改以确保项
我正在尝试使用 Dapper 和 SQLite 来追踪 C# 项目中的数据库损坏错误。所以我正在寻找一种方法来检查代码中的数据库完整性。我发现多个地方说我可以为此发送命令“PRAGMAintegrit
yarn 安装抛出: EACCES: permission denied, unlink '/home/minnak/Darbas/market/node_modules/.yarn-integrit
上下文: 我有 open-sourced a repository ,由 Travis-CI 测试。特拉维斯提供 build-notification用于测试运行的钩子(Hook),因此您可以在 IR
我是一名优秀的程序员,十分优秀!