У меня сложный запрос, который создает представление в консоли BigQuery. Я упростил это до следующего, чтобы проиллюстрировать проблему
SELECT
REGEXP_EXTRACT(FIELD1, r"[\d]*") as F1,
REGEXP_REPLACE(FIELD2, r"\'", "") AS F2,
FROM `project.mydataset.mytable`
Теперь я пытаюсь автоматизировать создание представления с помощью сборки облака. Я не могу разобраться, как разделить строки внутри регулярного выражения для работы как с yaml, так и с SQL.
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bq'
args: [
'mk',
'--use_legacy_sql=false',
'--project_id=${_PROJECT_ID}',
'--expiration=0',
'--view=
REGEXP_EXTRACT(FIELD1, r"[\d]*") as F1 ,
REGEXP_REPLACE(FIELD2, r"\'", "") AS F2,
REGEXP_EXTRACT(FIELD3, r"\[(\d{3,12}).*\]") AS F3
FROM `project.mydataset.mytable`"
'${_TARGET_DATASET}.${_TARGET_VIEW}'
]
Я получаю следующую ошибку
Не удалось запустить сборку: не удалось демаршалировать конфигурацию сборки cloudbuild / build-views.yaml: json: невозможно демаршалировать число в значение Go типа string
Я пробовал использовать параметры замены Cloud Build и столько же комбинаций SQL и YAML escape-последовательности, которые я могу придумать, чтобы найти рабочее решение.