Crate.io Копировать из 0 затронутых строк - PullRequest
0 голосов
/ 10 мая 2019

У меня есть база данных Crate.io, работающая с CrateDB версии 3.2.7, под Windows Server 2012. (Я знаю, что она не самая лучшая, сейчас она только для целей тестирования и не будет окончательной настройкой.)

Я создал таблицу dbo.snapshots enter image description here

Я экспортировал данные из SQL Server в файл CSV с помощью команды BCP.

bcp DatabaseName.dbo.Snapshots out F:\Path\dbo_OldSnapshots.dat -S ServerName -U UserName -P Password -a65535 -c -C 65001 -t ,

Затем я попытался импортировать данные в CrateDb с помощью команды «COPY FROM».

COPY dbo.snapshots FROM 'file:///F:/Path/dbo_OldSnapshots.dat';

Файл размером около 11go.Я знаю, что он нашел файл, так как я мог видеть ввод-вывод на диске в диспетчере задач.

Он работал в течение приблизительно 13 минут, а затем сказал "затронуто 0 строк".Я понятия не имею, почему это не работает, я не получил никаких ошибок.

enter image description here Любая идея, что я могу сделать, чтобы это работало?

********************************* ИЗМЕНЕНО ДОБАВЛЕНО ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ****************************
Хорошо, так что я обнаружил, что вы можете указать условие «ОБРАТНАЯ СВЯЗЬ» в конце команды COPY,Я проверил это с меньшим файлом.

С этим я получил ошибку, которая говорит, что первичный ключ не может быть НЕДЕЙСТВИТЕЛЕН.Я знаю, что это не NULL в данных, которые я извлекаю, поэтому мне нужно выяснить, почему он говорит, что мой первичный ключ - NULL.

Поэтому я изменил разделитель BCP на запятую, поскольку CSV-файл для CrateDB должен быть разделен запятыми, и я вручную отредактировал файл, добавив заголовки столбцов, поскольку CrateDB запрашивает заголовок.

Я также отредактировал файл в Notepadd ++, чтобы сохранить его в кодировке UTF-8, чтобы убедиться, что это правильная кодировка.

Но, несмотря на все это, я все равно получаю сообщение о том, что значение первичного ключане должно быть NULL.

enter image description here

1 Ответ

0 голосов
/ 10 мая 2019

Хорошо, так что мне удалось заставить его работать.Вот что вам нужно проверить, если вы пытаетесь экспортировать данные из SQL или другой базы данных в CrateDB:

- Кодировка файла в UTF-8

- Файл с разделителями-запятыми

- Первая строка должна быть заголовком со всеми столбцами , быть осторожными, имена чувствительны к регистру, поэтому, если столбец «MyColumn» в SQL Server, но «mycolumn» в CrateDB, он должен быть в нижнем регистре взаголовок или CrateDb не сможет найти его правильно

- если у вас есть типы DateTime, он должен быть между "" в файле (например, 1,0, "2019-05-10T16: 40: 00 ", 0,0)

- Если у вас есть типы DateTime, обратите внимание, что вам нужно иметь T между датой и временем.Так что «2019-05-10T16: 40: 00» вместо «2019-05-10 16:40:00»

После всего этого я смог импортировать данные примера в мою CrateDBбазы данных.

...