Импорт / экспорт данных из Cloud SQL из / в файлы CSV

Как в Cloud SQL с движком MySQL заменить функциональность ЗАГРУЗИТЬ ДАННЫЕ INFILE ... REPLACE?

Мы переносим нашу веб-платформу в Google Cloud с помощью App Engine и Cloud SQL.

Мы используем LOAD DATA INFILE с режимом IGNORE или REPLACE, чтобы импортировать файлы CSV в наши таблицы.

Поскольку инструкция LOAD DATA INFILE не поддерживается в Cloud SQL, как мы можем ее заменить?

Я пытался использовать gcloud sql import csv и Cloud SQL API, но, похоже, нет возможности ИГНОРИРОВАТЬ или ЗАМЕНИТЬ повторяющиеся данные.

В качестве примера приведем таблицу, в которую импортируются данные:

C1 | C2 | C3 | C4
-----------------
1  | 2  | 3  | A |
4  | 5  | 6  | B |
7  | 8  | 9  | C |

В этой таблице есть уникальный индекс по столбцам C1 + C2 + C3.

Теперь мне нужно импортировать CSV-файл, содержащий следующее:

1,2,3,AA

Если бы я использовал LOAD DATA INFILE с опцией REPLACE, таблица после импорта была бы такой:

C1 | C2 | C3 | C4
-----------------
1  | 2  | 3  | AA |
4  | 5  | 6  | B  |
7  | 8  | 9  | C  |

Итак, я хотел бы получить такое же поведение в Cloud SQL с помощью gcloud sql import csv или Cloud SQL API.

Нам нужно сделать это программно с помощью PHP.

Возможно ли это или есть еще одна возможность?

Спасибо


person Patulacci    schedule 16.05.2019    source источник


Ответы (1)


LOAD DATA LOCAL INFILE поддерживается App Engine.

Ответ на этот вопрос можно найти по этим ссылкам:

Импорт данных в Google Cloud SQL через CSV

Google Cloud SQL: альтернатива LOAD DATA INFILE

person guillermo rojas    schedule 16.05.2019
comment
Спасибо за ответ, но я до сих пор не понимаю, как передать файл из корзины в экземпляр Cloud SQL, а затем использовать LOAD DATA LOCAL INFILE. Я имею в виду, можно ли вручную скопировать файл с моего локального компьютера в Cloud Shell, но как это сделать программно с помощью PHP и из корзины? - person Patulacci; 17.05.2019
comment
Хорошо, я только что понял, как это сделать. Я копирую файл из корзины GCP в App Engine, а затем использую LOAD DATA LOCAL INFILE, чтобы импортировать его в базу данных. Спасибо - person Patulacci; 21.05.2019