|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
Нужно в PostgreSQL (9.2) залить табличку из SQLServer (MSSQL 2008 R2). Все на машине Win32 (Windows XP SP3). В таблице 90 млн. строк, Data ~8Гб. Железо: Mobile Intel Celeron 540, 1866 MHz/ 1Гб DDR2-667 Пробовал 1. DBConvert (PostgreSQL to MS SQL database conversion) - маленькие таблички без проблем, а нужная вылетает по таймауту. Сдампить тоже не получилось. 2. Linked Server MS SQL -> PostgreSQL под PSQLODBC.DLL Вешается на 100k строк. 3. odbc_fdw для PostgreSQL -> MS SQL настроить не получилось (актуальная версия только под 9.1, исходники скомпилить под 9.2 нельзя ); "We changed the planner API for foreign data wrappers in 9.2, so you won't be able to compile 9.1 FDWs until their code is updated. regards, tom lane" 4. php скриптом, но даже дамп в csv для последующего импорта не получается сделать - не тянет комп (не хватает оперативки). Подскажите плиз решение, рабочее для минимум 6 млн. записей за раз. Крайне желательно чтобы работало напрямую, по примеру dblink. Структура таблицы: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2013, 01:09 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
juwdoks... 4. php скриптом, но даже дамп в csv для последующего импорта не получается сделать - не тянет комп (не хватает оперативки). Подскажите плиз решение, рабочее для минимум 6 млн. записей за раз. ... ну так разбейте на части. select * from t1 where f1 > ? order by f1 limit 10000 (или как там оно в mssql) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2013, 04:51 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
V&N, Да, пришлось разбить, но COPY FROM нескольких файлов оказалось медленнее, чем одного большого. С UNLOGGED и без индексов все более-менее на запись, но еще надеюсь как-то и с индексами сделать нормальную скорость. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2013, 09:18 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
Решил новую тему не создавать. А какие есть достойные утилиты, для перевода базы с MS-SQL на PostgreSQL. Со всеми таблицами, View и хранимыми процедурами... Понятно, что все равно придется ручками много чего доделывать, но всё же)? Кто уже переводил, отзовитесь). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 12:58 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
DNShark, http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL вики день! http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Microsoft_SQL_Server ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 13:22 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
Misha Tyurin, ага) спасибо большое ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 13:29 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
DNSharkРешил новую тему не создавать. А какие есть достойные утилиты, для перевода базы с MS-SQL на PostgreSQL. Со всеми таблицами, View и хранимыми процедурами... Понятно, что все равно придется ручками много чего доделывать, но всё же)? Кто уже переводил, отзовитесь). Переводили. Тестировали разнообразные инструменты. Наиболее рабочим маршрутом оказалась миграция в PostgreSQL через оракл (через SQL Developer). А из оракла уже используя EnterpriseDB-MigrationToolkit или ora2pg. Только по такому маршруту удавалось передать хоть сколько-нибудь кода на постгрес. Но серебрянной пули не существует, все решения со своими косяками. Если кода у вас немного, то возможно это и получится как-то автоматизировать. Если же много кода, а система MSSQL боевая, работающая в режиме 24х7 и имеющая множество связанных с ней подсистем, то получите много головной боли используя какие-то инструменты автоматической миграции, слишком много кривого кода выходит из этих систем миграции. В конечном итоге, остановились на варианте ручной миграции. Весь код переписывается вручную. Данные можно переносить при помощи JDBC_FDW - на относительно небольших данных работает неплохо. Когда потребовалось переносить большее количество (45 млн.) - написали утилитку на ява, которая переносила данные батчами по 10 тыс. записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 14:37 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
ORA-12705, ага в ручную хоть знаешь, что меняешь. Я вот тоже попробовал DBConverter. Ну структуру частично перенес, правда с FOREIGN KEY возникли проблемы Cyclic referense detected и Data can not be added or updated: a foreign key constraint fails. конечно разница в скрипте солидная, между MS-SQL и Postgres при использовании конвертеров оно из Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
сделало Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 17:23 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
Для переноса данных мне больше всего подошло SSIS пакеты (мастер импорта и экспорта SQL Server), а потом команда copy в postgres, только нужно разделитель какой-нибудь использовать необычный, я например брал char(15) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 19:08 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
А вот такой вопрос. Как бы есть в базе таблица архивов событий. Она очень большая и хранится в кучке более мелких таблиц, каждая таблица - свой месяц. Организовано - это через clustered . Вот таким скриптом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185.
Вот и думаю, а есть аналог такой constraint в Posgres ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 17:44 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
DNShark, Как выполнять запросы, использующие несколько баз данных? Не существует способа создать запрос к базам данных отличным от текущей. Поскольку PostgreSQL загружает системные каталоги специфичные для базы данных, непонятно даже, как должен себя вести такой межбазовый запрос. contrib/dblink позволяет запросы между базами, используя вызовы функций. Разумеется, клиент может одновременно также устанавливать соедиенения с различными базами данных и таких образом объединять информацию из них. А представления тоже нельзя создавать к нескольким базам данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 18:26 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
DNSharkА вот такой вопрос. Как бы есть в базе таблица архивов событий. Она очень большая и хранится в кучке более мелких таблиц, каждая таблица - свой месяц. Организовано - это через clustered . ... Вот и думаю, а есть аналог такой constraint в Posgres ? наверное есть , только к constraint оно не относится, в mssql облом вникать.DNSharkКак выполнять запросы, использующие несколько баз данных? ...попробуйте это . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 21:45 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
DNSharkА вот такой вопрос. Как бы есть в базе таблица архивов событий. Она очень большая и хранится в кучке более мелких таблиц, каждая таблица - свой месяц. Организовано - это через clustered . ... Вот и думаю, а есть аналог такой constraint в Posgres ? http://www.postgresql.org/docs/9.3/static/bookindex.html посмотрите inheritance, partitioning DNSharkКак выполнять запросы, использующие несколько баз данных? ...можно разнести данные в одной базе по разным схемам ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2013, 10:18 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
DNSharkВсем спасибки). Нашел хорошую статью по разбиению таблиц. http://romantelychko.com/blog/520/ " -- Проверяем партицию на существование " - тут гонка! создавать таблицы в триггере - очень плохо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2013, 16:20 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
Misha Tyurin, http://www.postgresql.org/docs/9.3/static/ddl-partitioning.html - одна из лучшиз статей по партицированию ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2013, 16:22 |
|
экспорт/импорт MSSQL->PostgreSQL
|
|||
---|---|---|---|
#18+
Господа, а кто юзал http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL насколько работоспособен инструмент? интересует конвертация исключительно таблиц (никаких хранимых процедур, вьюх и т.п. нет) насколько устойчива потом база после конвертации, нет ли потерь данных? и ещё, сейчас она вроде как на платной основе распространяется, ни у кого нет ломаной? =) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 15:01 |
|
|
start [/forum/topic.php?fid=53&msg=38393797&tid=1995304]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 244ms |
total: | 520ms |
0 / 0 |