Greenplum версия базы данных: PostgreSQL 8.2.15 (Greenplum Database 4.2.3.0 сборки 1)Наиболее эффективный способ передачи данных из базы данных SQL Server в базу данных Greenplum?
SQL версии сервера баз данных: Microsoft SQL Server 2008 R2 (SP1)
Наш нынешний подход:
1) Экспорт каждой таблицы в плоский файл с SQL Server
2) загрузить данные в Greenplum с pgAdmin III с использованием утилиты psql.exe PSQL консоли
... ПРЕИМУЩЕСТВА
Скорость: Хорошо, но есть что-нибудь быстрее? Мы загружаем миллионы строк данных в течение нескольких минут
Автоматизация: Хорошо, мы называем эту утилиту из пакета SSIS, используя сценарий оболочки в VB
Ловушки ...
Надежность: ETL зависит от файлового сервера: держать плоские файлы
Безопасность: Много потенциально конфиденциальных данных на файловом сервере
Обработка ошибок: Это проблема. psql.exe никогда не выдает ошибку, что мы можем поймать, даже если он не делает ошибки, и загружает никаких данных или файл частичной
Что еще мы попытались ...
.Net Providers \ поставщик данных Odbc: мы настроили системный DSN с использованием протокола DataPlay 6.0 Greenplum Wire Protocol. Хорошая производительность для DELETE. Собака ужасно медленна для ВСТАВКИ.
Для справки, это вышеупомянутый VB скрипт в SSIS ...
Public Sub Main()
Dim v_shell
Dim v_psql As String
v_psql = "C:\Program Files\pgAdmin III\1.10\psql.exe -d "MyGPDatabase" -h "MyGPHost" -p "5432" -U "MyServiceAccount" -f \\MyFileLocation\SSIS_load\sql_files\load_MyTable.sql"
v_shell = Shell(v_psql, AppWinStyle.NormalFocus, True)
End Sub
Это содержимое файла "load_MyTable.sql" ...
\copy MyTable from '\\MyFileLocation\SSIS_load\txt_files\MyTable.txt' with delimiter as ';' csv header quote as '"'
[Greenplum] (http://www.greenplum.com/products) что? Чтобы воспроизвести вашу проблему, какой продукт я смогу установить? – billinkc
Спасибо за ваш комментарий. PostgreSQL 8.2.15 (Greenplum Database 4.2.3.0 build 1). Я добавил информацию о версии базы данных в начало вопроса. –
Просто комментарий .... вы можете вызвать эту командную строку непосредственно в файле .CMD (или.BAT): 'C: \ Program Files \ pgAdmin III \ 1.10 \ psql.exe -d" MyGPDatabase "-h" MyGPHost "-p" 5432 "-U" MyServiceAccount "-f \\ MyFileLocation \ SSIS_load \ sql_files \ load_MyTable.sql'. Если вы хотите сделать что-нибудь сложное, например, заменить/динамические параметры, тогда обязательно установите его в VBScript, но это не обязательно. Вы даже можете поместить это в свой пакет SSIS или в качестве рабочего шага для автоматизации всего дела –