Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 2012 Linked Server к Hadoop при загрузке большой таблицы : The provider ran out of memory.  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1316
Linked Server к Hadoop при загрухке большой таблицы : The provider ran out of memory.


Есть SQL 2012 и хадуп (Cloudera)
Есть ODBC источник к хадупу и линкед сервер GSOHive

Надо забрать таблицы 1 к 1 (или целиком или инкерментально)
Есть достаточно большая таблица Case (380 полей 20 млн записей)
в хадупе (партицированная по p_create_date это часть created_date только без времени - только дата)

которую хочется забарть вот так
SELECT * INTO  ##Tmp_case from ( 
select * from openquery ( [GSOHive] ,'Select id, is_del, case_nbr, cntct_id, acct_id, business_hrs_id, parnt_id, 
, substr(case_desc,1,8000) as case_desc
….
FROM ads.gso_sforce_case where last_mod_date > ''1900-01-01 00:00:00'' or created_date > ''1900-01-01 00:00:00''' )) as q1


substr(case_desc,1,8000) as case_desc - нужен чтобы не валился запрос (там в одбс есть настройка к-я по умолчанию 255
Change the Default String Column Length to 4000 (or less) if you are sure your String columns are less than 4000 characters in length )

На выходе имею даже через 3 минуты
The OLE DB provider "MSDASQL" for linked server "GSOHive" reported an error. The provider ran out of memory.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "GSOHive".

Набор из 10 полей загрузился где то за 3.5 часа

Я понимаю что это падает на стороне хадупа
почитал про утечки памяти вот
https://www.sql.ru/forum/415459/oshibka-pamyati-pri-rabote-s-linked-server


Понимая что ? не столько про SQL-Server все же какие есть варианты обойти это
(пока сокращение набора полей не рассматриваем )
я пытался грузить по годам
2014 up to now : p_created_date > ''2014-01-01 00:00:00''
не помогло - туже ошибку выдало

Наверняка народ сталкивался с похожими проблемами при загрузке из других БД
вообщем любые идеи велкам.
10 июл 14, 20:17    [16289133]     Ответить | Цитировать Сообщить модератору
 Re: 2012 Linked Server к Hadoop при загрузке большой таблицы : The provider ran out of memory.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну, в Hadoop же есть возможность выгружать данные в файл и при этом не падать?
10 июл 14, 20:21    [16289144]     Ответить | Цитировать Сообщить модератору
 Re: 2012 Linked Server к Hadoop при загрузке большой таблицы : The provider ran out of memory.  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1316
Гавриленко Сергей Алексеевич
Ну, в Hadoop же есть возможность выгружать данные в файл и при этом не падать?


Ну да я понимаю
csv->bcp->SQL

табилца хадуп это как бы набор файлов в под-директориях
файл получится слишком большой
ну да наверно можно пробовать по месяцам грузить - скорей всего так и получтися

Есть утилита sqoop но она рабоатет через jdbc и читате только текст. файлы
а формат той таблицы Sequential

вообщем пока идет битва с одбс драйвером Clouderra
с учетом того что сам поменять ничего в odbc setting пока не могу
11 июл 14, 21:00    [16294005]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить