python - 我可以在并行窗口中为当前也正在运行作业的同一台 guest 计算机执行 vagrant ssh 吗?会影响现在的工作吗?

标签 python mysql linux vagrant sqoop

作为我的家庭作业的一部分,我需要将大型数据文件加载到两个 MySQL 表中,使用 Python 解析,在我的 guest 计算机上通过 Vagrant SSH 调用。

然后我还需要在 2 个表中的一个上运行 Sqoop 作业,所以现在我已经成功加载了一个表并运行 Python 脚本来加载第二个表,它已经超过3 小时后仍在加载。

我想知道我是否可以在已经加载的表上完成我的 Sqoop 作业,而不是现在盯着黑屏将近 4 个小时。

我的问题是:

  1. 是否有任何其他方法可以在不执行 Vagrant reload 的情况下将 Vagrant SSH 连接到同一台机器(因为 --reload 最终会关闭我的虚拟机,从而终止我的 guest 上正在运行的所有当前作业).

  2. 如果有,假设我打开一个并行窗口以像往常一样登录 guest 计算机并开始在已加载的第一个表上处理我的 Sqoop 作业;它会以任何方式影响我目前仍在加载的第二张表的工作吗?还是会丢失数据,因为我不能冒险重新做它,因为它非常大且非常耗时。

  3. python 代码是这样的

    ~~ def 解析器():

    以 open('1950-sample.txt', 'r', encoding='latin_1') 作为输入:

        for line in input:
    

    ....

    插入表格

定义插入():

if (tablename == '1950_psr'):

    cursor.execute("INSERT INTO 1950_psr (usaf,wban,obs_da_dt,lati,longi,elev,win_dir,qc_wind_dir, sky,qc_sky,visib,qc_visib,air_temp,qc_air_temp,dew_temp,qc_dew_temp,atm_press,qc_atm_press)VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",(USAF,WBAN,obs_da_dt,lati,longi,elev,win_dir,qc_wind_dir, sky,qc_sky,visib,qc_visib,air_temp,qc_air_temp,dew_temp,qc_dew_temp,atm_press,qc_atm_press))


elif (tablename == '1986_psr'):

    cursor.execute("INSERT INTO 1986_psr (usaf,wban,obs_da_dt,lati,longi,elev,win_dir,qc_wind_dir, sky,qc_sky,visib,qc_visib,air_temp,qc_air_temp,dew_temp,qc_dew_temp,atm_press,qc_atm_press)VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",(USAF,WBAN,obs_da_dt,lati,longi,elev,win_dir,qc_wind_dir, sky,qc_sky,visib,qc_visib,air_temp,qc_air_temp,dew_temp,qc_dew_temp,atm_press,qc_atm_press))

解析器()

保存&关闭

conn.commit()

conn.close()

最佳答案

我不知道你的登录脚本里有什么,我也不清楚 --reload 标志是什么,但一般来说你可以在同一台机器上有多个 ssh session 。只需打开另一个终端并通过 ssh 连接到 VM。

但是,对于您的情况,这可能不是一个好主意。我怀疑第二个表需要很长时间才能加载,因为您的数据库正在重建索引或正在等待释放锁。

除非您正在加载数百兆,否则我建议您首先检查锁并查看哪些查询正在等待处理。

即使您正在加载非常大的数据集,并且您的脚本所需的表没有任何限制,您也只会堆积在一台已经负担很重的机器上......

关于python - 我可以在并行窗口中为当前也正在运行作业的同一台 guest 计算机执行 vagrant ssh 吗?会影响现在的工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55307778/

相关文章:

linux - grep 仅在 ":"之后的文本

Docker 容器中的 MySQL

python - 通过时间戳算法将照片分组到游戏中时光倒流

php - Sr.No 在 PHP MYSQL 中无法正常运行

java - 如何在 Web 服务响应中将 json 响应作为 block 返回?

php - 如何显示 "minutes ago"而不是 posted_time 的 UTC 时间?

c - setsockopt() 错误 : Numerical argument out of domain

python - 如何等待子进程完成、存储其输出并向输出添加前缀(不带新行)?

python - 为什么这个线性分类器算法是错误的?

python - 如何在python中为导数实现以下公式?