Ðîññèéñêèé ðàçðàáîò÷èê ñèñòåì óïðàâëåíèÿ áàçàìè äàííûõ Postgres Professional îáúÿâëÿåò î âûõîäå Postgres ProGate 1.4.0 — î÷åðåäíîãî îáíîâëåíèÿ ïëàòôîðìû ìèãðàöèè è ðåïëèêàöèè äàííûõ. Êëþ÷åâîå íîâøåñòâî âåðñèè — ïîääåðæêà àíàëèòè÷åñêîé ÑÓÁÄ äëÿ ãèáðèäíûõ íàãðóçîê Postgres Pro AXE ñ çàãðóçêîé â S3-ñîâìåñòèìîå õðàíèëèùå, ÷òî îòêðûâàåò çàêàç÷èêàì íîâûå ñöåíàðèè äëÿ ïîñòðîåíèÿ àíàëèòè÷åñêèõ õðàíèëèù. Òàêæå â ðåëèç âîøëà ôóíêöèîíàëüíîñòü ïî ïîâûøåíèþ ïðîèçâîäèòåëüíîñòè óòèëèò, óêðåïëåíèþ áåçîïàñíîñòè è ïåðåðàáîòêå ìåõàíèçìà èíòðîñïåêöèè ñõåì äàííûõ. Îá ýòîì CNews ñîîáùèëè ïðåäñòàâèòåëè Postgres Professional.
Postgres ProGate ïðåäíàçíà÷åíà äëÿ ïðîåêòîâ ìèãðàöèè, ðàçîâîãî ïåðåíîñà äàííûõ è íåïðåðûâíîé ðåïëèêàöåé ìåæäó ÑÓÁÄ. Ïðîäóêò ïîìîãàåò àâòîìàòèçèðîâàòü êëþ÷åâûå ýòàïû ðàáîòû ñ äàííûìè: ïåðâè÷íóþ çàãðóçêó, ñèíõðîíèçàöèþ èçìåíåíèé â ðåæèìå, áëèçêîì ê ðåàëüíîìó âðåìåíè, è ïðîâåðêó êîððåêòíîñòè ïåðåíîñà.
Èíòåãðàöèÿ ñ àíàëèòè÷åñêîé ÑÓÁÄ Postgres Pro AXE
Ãëàâíîå íîâøåñòâî âåðñèè — ïîääåðæêà àíàëèòè÷åñêîé ÑÓÁÄ AXE â êà÷åñòâå ïðèåìíèêà äàííûõ ñ âîçìîæíîñòüþ çàãðóçêè â S3-ñîâìåñòèìîå õðàíèëèùå. Ýòî ðàñøèðÿåò ñöåíàðèè èñïîëüçîâàíèÿ ïëàòôîðìû äëÿ ïîñòðîåíèÿ ñîâðåìåííûõ àíàëèòè÷åñêèõ õðàíèëèù è data lake-ðåøåíèé íà áàçå ýêîñèñòåìû Postgres Professional.
Ïåðåðàáîòàííàÿ èíòðîñïåêöèÿ ñõåì äàííûõ
Òàêæå îäíèì èç íàèáîëåå ñòàëà ïîëíàÿ ïåðåðàáîòêà ìåõàíèçìà èíòðîñïåêöèè. Ðåàëèçîâàíà àñèíõðîííàÿ îáðàáîòêà, ÷òî çàìåòíî óñêîðÿåò èíòðîñïåêöèþ ñõåì ñ áîëüøèì êîëè÷åñòâîì òàáëèö. Äîáàâëåíà ïîääåðæêà ïðîâåðêè ïðèâèëåãèé äîñòóïà ê ñõåìàì è òàáëèöàì, à òàêæå ïðîâåðêè ñîâìåñòèìîñòè ïîäêëþ÷åíèé äëÿ prosync, âêëþ÷àÿ ïðàâà íà ÷òåíèå òàáëèö, — ðåçóëüòàòû äîñòóïíû ÷åðåç API. Óëó÷øåíî àâòîìàòè÷åñêîå ñîïîñòàâëåíèå ñõåì è òàáëèö äëÿ çàäà÷ òðàíñôåðà íà îñíîâå ñîâïàäåíèÿ èìåí.
Ãèáêîå óïðàâëåíèå ïàðàëëåëèçìîì è óñêîðåíèå çàãðóçêè
Óòèëèòà procopy ïîëó÷èëà áîëåå ãèáêèé êîíòðîëü íàä ïàðàëëåëüíîé îáðàáîòêîé çàäà÷. Äîáàâëåí ïàðàìåòð sub_task_count, îïðåäåëÿþùèé, íà ñêîëüêî ïîäçàäà÷ ìîæåò ðàçáèâàòüñÿ èñõîäíàÿ çàäà÷à êîïèðîâàíèÿ, ïðè ýòîì ðàñ÷åò ðàçìåðà ïîäçàäà÷ òåïåðü âûïîëíÿåòñÿ àâòîìàòè÷åñêè, à ïàðàìåòð sub_task_rows ïåðåâåäåí â ñòàòóñ deprecated. Ïîÿâèëñÿ ôëàã force_restart_task, ïîçâîëÿþùèé ïåðåçàïóñêàòü çàäà÷è áåç î÷èñòêè äàííûõ è áåç èçìåíåíèÿ èäåíòèôèêàòîðà çàäà÷è — ýòî óäîáíî äëÿ ðåãóëÿðíûõ ïåðåíîñîâ äàííûõ, íàïðèìåð, ñíàïøîòîâ T-1.
Êðîìå òîãî, â procopy è prosync äîáàâëåí ïàðàìåòð disable_constraint_checks, êîòîðûé îòêëþ÷àåò ïðîâåðêó îãðàíè÷åíèé è ïîëüçîâàòåëüñêèõ òðèããåðîâ íà âðåìÿ çàïèñè áàò÷à â öåëåâóþ PostgreSQL-ñîâìåñòèìóþ ÁÄ, ÷òî óñêîðÿåò çàãðóçêó â ñöåíàðèÿõ, ãäå öåëîñòíîñòü ãàðàíòèðóåòñÿ íà ñòîðîíå èñòî÷íèêà èëè ïîñëåäóþùåé âåðèôèêàöèåé.
Íàäåæíîñòü è ïðîèçâîäèòåëüíîñòü prosync
CDC-ðåïëèêàöèÿ ñòàëà ñòàáèëüíåå è áûñòðåå. Äîáàâëåíà îïöèÿ single_loader, êîòîðàÿ ïîçâîëÿåò äëÿ êîíêðåòíîé òàáëèöû ïðèíóäèòåëüíî èñïîëüçîâàòü îäèí çàãðóç÷èê, îáåñïå÷èâàÿ ïîñëåäîâàòåëüíóþ îáðàáîòêó èçìåíåíèé äëÿ òàáëèö, ñâÿçàííûõ âíåøíèìè êëþ÷àìè. Èñïðàâëåíà îøèáêà ñ÷èòûâàíèÿ çàïèñåé ñ áîëüøèìè çíà÷åíèÿìè SCN èç îíëàéí-æóðíàëîâ Oracle. Óñòðàíåíî óäåðæàíèå WAL-ôàéëîâ íà èñòî÷íèêàõ PostgreSQL ïðè ðåäêèõ èçìåíåíèÿõ çà ñ÷åò óëó÷øåíèÿ ìåõàíèçìà ïðîäâèæåíèÿ ñëîòîâ ëîãè÷åñêîé ðåïëèêàöèè. Ïîâûøåíà ïðîèçâîäèòåëüíîñòü ïðèìåíåíèÿ èçìåíåíèé äëÿ Oracle.
Áåçîïàñíîñòü
Äîáàâëåíà ôèêñàöèÿ áëîêèðîâêè ó÷åòíîé çàïèñè ïîëüçîâàòåëÿ ïðè ïðåâûøåíèè ëèìèòà íåóäà÷íûõ ïîïûòîê ââîäà ïàðîëÿ. Âñå êîìïîíåíòû ñèñòåìû ïåðåâåäåíû íà Go 1.26.5, à Apache Thrift îáíîâëåí äî âåðñèè v0.23.0 ñ óñòðàíåíèåì ðàíåå îáíàðóæåííûõ óÿçâèìîñòåé.
«Ïîääåðæêà Postgres Pro AXE â êà÷åñòâå ïðèåìíèêà äàííûõ – ýòî íîâûé âåêòîð ðàçâèòèÿ ïðîäóêòà. Åñëè ðàíüøå ProGate èñïîëüçîâàëñÿ ïðåèìóùåñòâåííî äëÿ ìèãðàöèè è ðåïëèêàöèè ìåæäó îïåðàöèîííûìè áàçàìè äàííûõ, òî òåïåðü ïëàòôîðìà çàêðûâàåò è ñöåíàðèé ïîñòàâêè äàííûõ â àíàëèòèêó ñ çàãðóçêîé â S3-ñîâìåñòèìûå õðàíèëèùà. Ýòî ñóùåñòâåííî ðàñøèðÿåò îáëàñòü ïðèìåíåíèÿ ïðîäóêòà è îòêðûâàåò íàøèì çàêàç÷èêàì âîçìîæíîñòü ñòðîèòü àíàëèòè÷åñêèå êîíâåéåðû íà åäèíîé òåõíîëîãè÷åñêîé ïëàòôîðìå.  ñî÷åòàíèè ñ ïåðåðàáîòàííîé èíòðîñïåêöèåé, êîòîðàÿ â ðàçû óñêîðÿåò ðàáîòó ñî ñõåìàìè èç ñîòåí è òûñÿ÷ òàáëèö, íîâûìè îïöèÿìè óïðàâëåíèÿ ïàðàëëåëèçìîì â procopy è óñèëåíèåì áåçîïàñíîñòè ìû ñäåëàëè ñåðüåçíûé øàã â ðàçâèòèè ïëàòôîðìû è äàëè íàøèì êëèåíòàì íîâûå ñïîîñîáû ðåøåíèÿ ñâîèõ áèçíåñ-çàäà÷», – ñêàçàë ðóêîâîäèòåëü ïðîäóêòà Postgres ProGate Åâãåíèé Êðèâîâ.


