SELECT и INSERT данных из Google Cloud Storage. Требуется роль IAM Storage Object User.
Это псевдоним табличной функции s3.
Если в вашем кластере несколько реплик, вместо неё можно использовать функцию s3Cluster (она работает с GCS), чтобы распараллелить вставки.
Синтаксис
Аргументы
GCSПуть GCS имеет следующий формат, поскольку конечная точка Google XML API отличается от JSON API:а не https://storage.cloud.google.com.
url, format, structure и compression_method работают так же, а также поддерживаются дополнительные параметры:
Возвращаемое значение
Примеры
https://storage.googleapis.com/my-test-bucket-768/data.csv:
gzip:
Использование
- ‘https://storage.googleapis.com/my-test-bucket-768/some_prefix/some_file_1.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/some_prefix/some_file_2.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/some_prefix/some_file_3.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/some_prefix/some_file_4.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/another_prefix/some_file_1.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/another_prefix/some_file_2.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/another_prefix/some_file_3.csv'
- ‘https://storage.googleapis.com/my-test-bucket-768/another_prefix/some_file_4.csv'
file-000.csv, file-001.csv, … , file-999.csv:
test-data.csv.gz:
test-data.csv.gz:
** можно использовать для рекурсивного обхода каталогов. Рассмотрим пример ниже: он рекурсивно извлечёт все файлы из каталога my-test-bucket-768:
test-data.csv.gz во всех папках внутри каталога my-test-bucket:
Запись с разбиением на партиции
GCS указать выражение PARTITION BY, для каждого значения партиции будет создан отдельный файл. Разбиение данных на отдельные файлы помогает повысить эффективность чтения.
Примеры
- Использование идентификатора партиции в ключе создает отдельные файлы:
file_x.csv, file_y.csv и file_z.csv.
- Использование идентификатора партиции в имени бакета приводит к созданию файлов в разных бакетах:
my_bucket_1/file.csv, my_bucket_10/file.csv и my_bucket_20/file.csv.