Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 具有GCS数据源的Bigquery表不影响更改为GCS的数据_Google Cloud Platform_Google Bigquery_Cloud_External Tables - Fatal编程技术网

Google cloud platform 具有GCS数据源的Bigquery表不影响更改为GCS的数据

Google cloud platform 具有GCS数据源的Bigquery表不影响更改为GCS的数据,google-cloud-platform,google-bigquery,cloud,external-tables,Google Cloud Platform,Google Bigquery,Cloud,External Tables,我对bigquery很陌生。 我已经从gcp控制台创建了bigquery表,其中GCS CSV文件用作数据源。我认为当我删除任何行时,也应该从GCS文件中删除该行。但实际上这并没有发生。当您使用BigQuery时,有两种方法可以从GCS CSV文件加载数据 最常见的是将数据加载(复制)到BigQuery本机表中。加载后,文件和BigQuery数据之间没有保持链接 在这种情况下,当您将数据删除到BigQuery中时,文件不会更改是正常的 你可以定义。它可以防止数据重复,但查询速度较慢。此外,在外部

我对bigquery很陌生。
我已经从gcp控制台创建了bigquery表,其中GCS CSV文件用作数据源。我认为当我删除任何行时,也应该从GCS文件中删除该行。但实际上这并没有发生。

当您使用BigQuery时,有两种方法可以从GCS CSV文件加载数据

  • 最常见的是将数据加载(复制)到BigQuery本机表中。加载后,文件和BigQuery数据之间没有保持链接
  • 在这种情况下,当您将数据删除到BigQuery中时,文件不会更改是正常的

  • 你可以定义。它可以防止数据重复,但查询速度较慢。此外,在外部表上不支持
  • 解决方法

    作为解决方案,您可以使用解决方案1:

    • 将数据从CSV文件加载到BigQuery本机表
    • 删除所需的行

    使用BigQuery时,有两种方法可以从GCS CSV文件加载数据

  • 最常见的是将数据加载(复制)到BigQuery本机表中。加载后,文件和BigQuery数据之间没有保持链接
  • 在这种情况下,当您将数据删除到BigQuery中时,文件不会更改是正常的

  • 你可以定义。它可以防止数据重复,但查询速度较慢。此外,在外部表上不支持
  • 解决方法

    作为解决方案,您可以使用解决方案1:

    • 将数据从CSV文件加载到BigQuery本机表
    • 删除所需的行

    如下图所示,
    BigQuery
    支持三种类型的表:本机外部视图

    创建本机表时,数据会完全导入到
    BigQuery
    的存储系统中,并进行转换,以便针对查询进行优化。 外部表基本上是指向源文件的指针。换句话说,每次对外部表运行查询时,
    BigQuery
    都会访问原始数据源(GCS中的一些文件、Google驱动程序等)

    有鉴于此,我可以直接转到您的问题:BigQuery在运行某些DML语句时不会更新源文件。 如果对本机表运行DML语句(DELETE、UPDATE),BigQuery存储系统中的数据将被更改,但不会触及文件

    此外,外部表中不支持DML。例如,如果尝试对外部表运行DELETE语句,则会出现错误:DML over Table“project.dataset.Table”不受支持。


    我强烈建议您查看此

    ,如下图所示,
    BigQuery
    支持三种类型的表:本地外部视图

    创建本机表时,数据会完全导入到
    BigQuery
    的存储系统中,并进行转换,以便针对查询进行优化。 外部表基本上是指向源文件的指针。换句话说,每次对外部表运行查询时,
    BigQuery
    都会访问原始数据源(GCS中的一些文件、Google驱动程序等)

    有鉴于此,我可以直接转到您的问题:BigQuery在运行某些DML语句时不会更新源文件。 如果对本机表运行DML语句(DELETE、UPDATE),BigQuery存储系统中的数据将被更改,但不会触及文件

    此外,外部表中不支持DML。例如,如果尝试对外部表运行DELETE语句,则会出现错误:DML over Table“project.dataset.Table”不受支持。

    我强烈建议你看看这个