How to Import Large/Complex data into Odoo

Public Channel / Odoo Experience 2016

By Thibault François - Technical Consultant Team Leader, Odoo

Share on Social Networks

Share Link

Use permanent link to share in social media

Share with a friend

Please login to send this presentation by email!

Embed in your website

Select page to start with

20. D e m o

15. M i s s i n g c o m m e r c i a l _ p a r t n e r _ i d i n d e x : O ( n ) v s O ( n ² )

16. 4 I m p l e m e n t a t i o n

3. 1 C h o o s e t h e r i g h t t o o l

6. 2 L o a d m e t h o d : H o w t o

10. 3 H o w t o s p e e d u p t h e i m p o r t

1. H o w   t o   I m p o r t   L a r g e D a t a   i n t o   O d o o T h i b a u l t F r a n c o i s • T e c h n i c a l c o n s u l t a n t T e a m L e a d e r

2. A g e n d a C h o o s e t h e r i g h t t o o l L o a d m e t h o d S p e e d u p t h e i m p o r t I m p l e m e n t a t i o n C o n c l u s i o n

12. O n O d o o S e r v e r ' s l a y e r S e n d s i m u l t a n e o u s r e q u e s t d o e s n o t h e l p i f t h e r e i s n o w o r k e r t o a n s w e r o n t h e s e r v e r n b w o r k e r > = n b c o n c u r r e n t r e q u e s t R u l e : n b w o r k e r = 2 * n b p h y s i c a l c o r e + 1 Y o u m a y n e e d t o l e a v e w o r k e r f o r o t h e r s

22. A n y q u e s t i o n ? T h i b a u l t F r a n c o i s ( t f r @ o d o o . c o m )    @ t f r a n c o i

4. A v a i l a b l e T o o l s I m p o r t w i z a r d i n o d o o S l o w , t i m e o u t , n o a u t o m a t i o n S Q L q u e r y T h e f a s t e s t , b u t b y p a s s t h e o r m , n e e d d i r e c t a c c e s s t o d a t a b a s e R P C : C r e a t e a n d W r i t e W o r k e v e r y w h e r e , c o m p l i c a t e d , 1 r e c o r d = 1 C a l l R P C : L o a d

8. H o w t o l o a d 5 0 K P a r t n e r s Y o u c a n n o t l o a d 5 0 K l i n e s w i t h o n e c a l l S p l i t y o u r l i s t i n s m a l l b a t c h T o o s m a l l b a t c h l e a d t o a l o t o f t r a n s a c t i o n a n d n e t w o r k o v e r h e a d T o o b i g b a t c h l e a d t o t i m e o u t o r m e m o r y e r r o r I f o n e l i n e f a i l e d , t h e w h o l e b a t c h r o l l b a c k N e e d t o k e e p t r a c k o f f a i l e d b a t c h N e e d t o r e p l a y w i t h s m a l l e r b a t c h s i z e : i d e a l l y 1

21. C o n c l u s i o n R P C c a l l L o a d w o r k w e l l a n d f a s t F e e l f r e e t o u s e o d o o _ i m p o r t _ t h r e a d . p y S c r i p t e v e r y t h i n g y o u ' l l p r o b a b l y n e e d t o r u n t h e i m p o r t m o r e t h e n o n c e E x p o r t c a n b e s p e e d u p t h e s a m e w a y W e o n l y d i s c u s s t h e l o a d i n g a s p e c t o f d a t a m i g r a t i o n p r o b l e m T h e e x t r a c t i o n a n d t r a n s f o r m a t i o n r e m a i n t h e h a r d e s t p a r t

17. o d o o _ i m p o r t _ t h r e a d . p y a v a i l a b l e o n g i t h u b t f r a n c o i / o d o o _ c s v _ i m p o r t R e a d a C S V f i l e c u t i n t o b a t c h I m p o r t b a t c h e s w i t h x s i m u l t a n e o u s t h r e a d s S t o r e f a i l e d b a t c h i n a n e w C S V B a s e d o n o p e n e r p ‐ c l i e n t ‐ l i b W o r k o n O d o o s a a s

5. R P C a p i : L o a d m e t h o d E x a c t s a m e b e h a v i o r a s i m p o r t w i z a r d C a n b e e x e c u t e d i n b a t c h : 1 c a l l = N r e c o r d s T a k e c a r e o f l i n k i n g d a t a b a s e d o n e x t e r n a l I D I d d e f i n e d p r i o r t h e i m p o r t N o n e e d t o w o r r y a b o u t c r e a t i o n o r u p d a t e C a n b e u s e d f o r i n c r e m e n t a l i m p o r t C a n b e a u t o m a t e d L e t ' s s e e h o w t o u s e i t w i t h a l a r g e a m o u n t o f d a t a

13. N u m b e r o f c o n c u r r e n t r e q u e s t 4 C o r e s ( H T ) , b a t c h s i z e = 1 0 0 1 0 0 K r e c o r d C o n . R e q . T o t a l p e r r e c o r d 1 1 4 9 5 s 1 5 m s 2 7 6 2 s 7 . 6 m s 4 4 2 9 s 4 . 3 m s 6 3 6 7 s 3 . 7 m s 8 3 4 2 s 3 . 4 m s 9 3 4 1 s 3 . 4 m s 1 5 3 7 2 s 3 . 7 m s 9 w o r k e r s g i v e t h e b e s t r e s u l t

9. I d e a l B a t c h S i z e O n l a p t o p , 1 0 K p a r t n e r B a t c h S i z e T o t a l T i m e ( 1 0 K ) P e r r e c o r d ( 1 0 K ) 1 5 8 9 s 5 9 m s 1 0 3 8 1 s 3 8 . 1 m s 5 0 3 1 0 s 3 1 m s 1 0 0 3 1 6 s 3 1 . 6 m s 2 0 0 3 0 3 s 3 0 . 3 m s 5 0 0 2 8 9 s 2 8 . 9 m s 1 0 0 0 3 0 3 s 3 0 . 3 m s G o o d b a t c h s i z e i s b e t w e e n 5 0 a n d 5 0 0 l i n e s . A j u s t t o d a t a q u a l i t y .

14. O n P o s t g r e s q l ' s L a y e r U s e t o s e t u p m e m o r y p a r a m e t e r s P g T u n e # E x a m p l e   f o r   8 G B   s y s t e m s h a r e d _ b u f f e r s   =   2 G B e f f e c t i v e _ c a c h e _ s i z e   =   6 G B w o r k _ m e m   =   6 4 M B m a i n t e n a n c e _ w o r k _ m e m   =   5 1 2 M B w a l _ b u f f e r s   =   1 6 M B F o r i m p o r t y o u c a n d i s a b l e s y n c h r o n o u s _ c o m m i t s y n c h r o n o u s _ c o m m i t   =   o f f D o n ' t f o r g e t t o r e a c t i v a t e i t a f t e r y o u r i m p o r t I n d e x e s c a n b e m i s s i n g : t i m e p e r b a t c h i n c r e a s e d u r i n g t h e p r o c e s s F i n d t h e m w i t h p g b a g e r A d d t h e m

11. O n R P C C l i e n t ' s l a y e r S e n d s i m u l t a n e o u s r e q u e s t D e p e n d o n t h e n u m b e r o f w o r k e r s a v a i l a b l e o n t h e s e r v e r R i s k o f c o n c u r r e n t u p d a t e D o n o t i m p o r t c o m p u t e o r r e l a t e d f i e l d S o m e v a l u e i n t h e c o n t e x t a l l o w t o a v o i d u n n e c e s s a r y o r u n w a n t e d b e h a v i o r {         # P r e v e n t   t o   c r e a t e   m a i l   m e s s a g e         ' t r a c k i n g _ d i s a b l e '   :   T r u e ,           # H a n d l e   m u l t i   c o m p a n y         ' f o r c e _ c o m p a n y '   :   c o m p a n y _ i d ,         # s i n c e   V 1 0   :   a l l o w   t o   a p p e n d   v a l u e   t o   m a n y 2 m a n y           # [ ( 4 ,   i d 1 ,   _ ) ,   ( 4 ,   i d 2 ,   _ ) , . . . ]   i n s t e a d   o f   [ ( 6 ,   0 ,   i d s ) ]         ' u p d a t e _ m a n y 2 m a n y ' :   T r u e ,         # O t h e r   s e p c i f i c   t o   s o m e   m o d e l s         . . . }

19. A d v a n c e U s a g e     ­ ­ f a i l                                 F a i l   m o d e     ­ ­ g r o u p b y   G R O U P               G r o u p   d a t a   p e r   b a t c h   w i t h   t h e   s a m e   v a l u e   f o r   t h e   g i v e n                                                 c o l u m n   i n   o r d e r   t o   a v o i d   c o n c u r r e n t   u p d a t e   e r r o r     ­ ­ i g n o r e   I G N O R E               l i s t   o f   c o l u m n   s e p a r a t e   b y   c o m m a .   T h o s e   c o l u m n   w i l l   b e                                                 r e m o v e   f r o m   t h e   i m p o r t   r e q u e s t                                                 F a i l m o d e u s e a s i n p u t t h e o u t p u t o f t h e n o r m a l m o d e , s e t w o r k e r a n d b a t c h s i z e t o 1 E x t r a c t i n a t h i r d f i l e t h e r e a l w r o n g l i n e s g r o u p b y a l l o w t o g r o u p r e c o r d t h a t h a v e t h e s a m e v a l u e f o r a g i v e n c o l u m n i n t h e s a m e b a t c h . I f t h e b a t c h e x c e e d b a t c h _ s i z e , i t ' s c u t i n t o s u b b a t c h i m p o r t e d s e q u e n t i a l l y I f y o u p i c k t h e r i g h t f i e l d i t h e l p t o m i t i g a t e t h e c o n c u r r e n t u p d a t e p r o b l e m F o r e x a m p l e y o u w a n t t o g r o u p y o u r s a l e o r d e r l i n e b y s a l e o r d e r

18. U s a g e     ­ c   C O N F I G ,   ­ ­ c o n f i g   C O N F I G                                                 C o n f i g u r a t i o n   F i l e   t h a t   c o n t a i n s   c o n n e c t i o n   p a r a m e t e r s     ­ ­ f i l e   F I L E N A M E               F i l e   t o   i m p o r t     ­ ­ m o d e l   M O D E L                   M o d e l   t o   i m p o r t     ­ ­ w o r k e r   W O R K E R               N u m b e r   o f   s i m u l t a n e o u s   c o n n e c t i o n     ­ ­ s i z e   B A T C H _ S I Z E           N u m b e r   o f   l i n e   t o   i m p o r t   p e r   c o n n e c t i o n     ­ ­ c o n t e x t   C O N T E X T           c o n t e x t   t h a t   w i l l   b e   p a s s e d   t o   t h e   l o a d   f u n c t i o n ,   n e e d                                                 t o   b e   a   v a l i d   p y t h o n   d i c t                                                 C o n n e c t i o n p a r a m e t e r f i l e [ C o n n e c t i o n ] h o s t n a m e   =   l o c a l h o s t d a t a b a s e   =   l o a d l o g i n   =   a d m i n p a s s w o r d   =   a d m i n p r o t o c o l   =   x m l r p c p o r t   =   8 0 6 9 u i d   =   1

7. M e t h o d S i g n a t u r e c l a s s   B a s e M o d e l ( o b j e c t ) :         @ a p i . m o d e l         d e f   l o a d ( s e l f ,   f i e l d s ,   d a t a ) :                 " " "                 A t t e m p t s   t o   l o a d   t h e   d a t a   m a t r i x ,   a n d   r e t u r n s   a   l i s t   o f   i d s   ( o r                 ` ` F a l s e ` `   i f   t h e r e   w a s   a n   e r r o r   a n d   n o   i d   c o u l d   b e   g e n e r a t e d )   a n d   a                 l i s t   o f   m e s s a g e s .                 T h e   i d s   a r e   t h o s e   o f   t h e   r e c o r d s   c r e a t e d   a n d   s a v e d   ( i n   d a t a b a s e ) ,   . . .                 : p a r a m   f i e l d s :   l i s t   o f   f i e l d s   t o   i m p o r t ,   a t   t h e   s a m e   i n d e x   a s   t h e   c o r r e s p o n d i n g   d a t a                 : p a r a m   d a t a :   r o w ­ m a j o r   m a t r i x   o f   d a t a   t o   i m p o r t                 : r e t u r n s :   { i d s :   l i s t ( i n t ) | F a l s e ,   m e s s a g e s :   [ M e s s a g e ] }                 " " " H o w t o c a l l i t w i t h x m l r p c a p i : m o d e l s   =   x m l r p c l i b . S e r v e r P r o x y ( ' { } / x m l r p c / 2 / o b j e c t ' . f o r m a t ( u r l ) )                 m o d e l s . e x e c u t e _ k w ( d b ,   u i d ,   p a s s w o r d ,   ' r e s . p a r t n e r ' ,   ' l o a d ' ,   [                         # H e a d e r                         [ ' i d ' ,   ' n a m e ' ] ,                         # D a t a                             [ [ ' m y _ p a r t n e r . e x t e r n a l _ i d 1 ' ,   ' J o h n   D o e ' ] ,                           [ ' m y _ p a r t n e r . e x t e r n a l _ i d 2 ' ,   ' F o o   B a r ' ] ,   ]                         ] ,   { ' c o n t e x t ' :   { } } )

Views

  • 12 Total Views
  • 2 Website Views
  • 10 Embeded Views

Actions

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Share count

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Embeds 1

  • 2 accounts.odoo.com