我在gs:/// path / to / directory / 2017- {01..07} *下有8亿个文件要删除,递归使用这个多线程删除
$ gsutil -m rm -r gs://<bucket>/path/to/directory/2017-{01..07}*
在bash下运行它会扩展为gsutil -m rm -r gs://<bucket>/path/to/directory/2017-01* gs://<bucket>/path/to/directory/2017-02* gs://<bucket>/path/to/directory/2017-03* ... gs://<bucket>/path/to/directory/2017-07*
但它显示删除速度为550 / s;所以,删除所有8亿个文件需要16天,太慢了,想知道有更快的方法吗?
答案 0 :(得分:1)
您可以跨多台计算机分发处理。例如,有脚本如此
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>5.2.7.Final</version>
<exclusions>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss</groupId>
<artifactId>jandex</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
</exclusion>
<exclusion>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.hibernate.common</groupId>
<artifactId>
hibernate-commons-annotations
</artifactId>
</exclusion>
</exclusions>
</dependency>
gsutil -m rm -r gs://<bucket>/path/to/directory/2017-01*
这会给你~12倍的加速。 如果您将数据分割为更多方式,则可以使其更快。