Oh sorry, I think I misunderstood you. Looks like the tar.gz file contains the actual data, not just filenames. Then my suggestion doesn't apply.
On Sun, Jun 11, 2017, 9:54 AM Eugene Kirpichov <kirpic...@google.com> wrote: > Seems like there's a lot of parallelism you could exploit here and make > the pipeline much, much faster. > > I suggest you: > 1) in the main program, even before starting the pipeline, read the tar.gz > file and extract the 4 filenames. > 2) create the pipeline containing 1 TextIO.Read transform per filename you > extracted, and Flatten the resulting PCollections > 3) apply the rest of the pipeline > > This way not only you'll be reading 4 files in parallel, but each file > itself will be read in parallel within the file. > > On Sun, Jun 11, 2017, 1:43 AM Morand, Sebastien < > sebastien.mor...@veolia.com> wrote: > >> Hi, >> >> It gets a list of filename while building the pipeline (*.tar.gz >> containing each 4 files). >> >> The first step of the pipeline read every line of each files and return a >> pcollection where each value is a dict containing the content of each file >> in the archive. >> >> Example: >> >> - File file1.tar.gz contains file1_A.csv, file1_B.csv, file1_C.csv >> and file1_D.csv >> - The first step returns : >> { >> "file1_A.csv": [<LIST OF LINES IN file1_A.csv], >> "file1_B.csv": [<LIST OF LINES IN file1_B.csv], >> "file1_C.csv": [<LIST OF LINES IN file1_C.csv], >> "file1_D.csv": [<LIST OF LINES IN file1_D.csv] >> } >> >> => So the first step can be completly parallelized >> >> >> *Sébastien MORAND* >> Team Lead Solution Architect >> Technology & Operations / Digital Factory >> Veolia - Group Information Systems & Technology (IS&T) >> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >> <+33%201%2085%2057%2071%2008> >> Bureau 0144C (Ouest) >> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >> *www.veolia.com <http://www.veolia.com>* >> <http://www.veolia.com> >> <https://www.facebook.com/veoliaenvironment/> >> <https://www.youtube.com/user/veoliaenvironnement> >> <https://www.linkedin.com/company/veolia-environnement> >> <https://twitter.com/veolia> >> >> On 11 June 2017 at 04:01, Eugene Kirpichov <kirpic...@google.com> wrote: >> >>> Hi Sebastien, >>> Can you tell more about how your "step 1" works? I looked at the logs of >>> your job and it's taking suspiciously long (~20 minutes) to produce the >>> ~400 elements, and it's doing that sequentially. Is it possible to >>> parallelize step 1? >>> >>> On Sat, Jun 10, 2017 at 5:53 PM Lukasz Cwik <lc...@google.com> wrote: >>> >>>> The Dataflow implementation when executing a batch pipeline does not >>>> parallelize dependent fused segments irrespective of the windowing function >>>> so #1 will fully execute before #2 starts. >>>> >>>> On Sat, Jun 10, 2017 at 3:48 PM, Morand, Sebastien < >>>> sebastien.mor...@veolia.com> wrote: >>>> >>>>> Hi again, >>>>> >>>>> So it scales. Now my pipeline is running in two parts: >>>>> >>>>> 1. Reading files content (~400) and then GroupByKey >>>>> >>>>> 2. From GroupByKey transform and write in bigquery (~50M) >>>>> >>>>> 2 is scaling as expected. 1 takes about 25 minutes on my files and 2 >>>>> about 35 minutes scaling. But what if I want to Window so that the second >>>>> part starts sooner and the process is more parallel? >>>>> >>>>> I tried to add a 60 seconds FixedWindow time but it's not working (Job >>>>> ID : 2017-06-06_04_36_01-9894155361321571250) >>>>> >>>>> Regards, >>>>> >>>>> >>>>> *Sébastien MORAND* >>>>> Team Lead Solution Architect >>>>> Technology & Operations / Digital Factory >>>>> Veolia - Group Information Systems & Technology (IS&T) >>>>> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >>>>> <+33%201%2085%2057%2071%2008> >>>>> Bureau 0144C (Ouest) >>>>> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >>>>> *www.veolia.com <http://www.veolia.com>* >>>>> <http://www.veolia.com> >>>>> <https://www.facebook.com/veoliaenvironment/> >>>>> <https://www.youtube.com/user/veoliaenvironnement> >>>>> <https://www.linkedin.com/company/veolia-environnement> >>>>> <https://twitter.com/veolia> >>>>> >>>>> On 6 June 2017 at 01:24, Morand, Sebastien < >>>>> sebastien.mor...@veolia.com> wrote: >>>>> >>>>>> Fine, it scales ... Thank you very much. >>>>>> >>>>>> *Sébastien MORAND* >>>>>> Team Lead Solution Architect >>>>>> Technology & Operations / Digital Factory >>>>>> Veolia - Group Information Systems & Technology (IS&T) >>>>>> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >>>>>> <+33%201%2085%2057%2071%2008> >>>>>> Bureau 0144C (Ouest) >>>>>> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >>>>>> *www.veolia.com <http://www.veolia.com>* >>>>>> <http://www.veolia.com> >>>>>> <https://www.facebook.com/veoliaenvironment/> >>>>>> <https://www.youtube.com/user/veoliaenvironnement> >>>>>> <https://www.linkedin.com/company/veolia-environnement> >>>>>> <https://twitter.com/veolia> >>>>>> >>>>>> On 6 June 2017 at 00:31, Morand, Sebastien < >>>>>> sebastien.mor...@veolia.com> wrote: >>>>>> >>>>>>> Thank you Eugene, >>>>>>> >>>>>>> I'm trying the Sourabh way (and yours since it looks like it's the >>>>>>> same idea) and let you know if it's better. >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> *Sébastien MORAND* >>>>>>> Team Lead Solution Architect >>>>>>> Technology & Operations / Digital Factory >>>>>>> Veolia - Group Information Systems & Technology (IS&T) >>>>>>> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >>>>>>> <+33%201%2085%2057%2071%2008> >>>>>>> Bureau 0144C (Ouest) >>>>>>> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >>>>>>> *www.veolia.com <http://www.veolia.com>* >>>>>>> <http://www.veolia.com> >>>>>>> <https://www.facebook.com/veoliaenvironment/> >>>>>>> <https://www.youtube.com/user/veoliaenvironnement> >>>>>>> <https://www.linkedin.com/company/veolia-environnement> >>>>>>> <https://twitter.com/veolia> >>>>>>> >>>>>>> On 5 June 2017 at 23:31, Eugene Kirpichov <kirpic...@google.com> >>>>>>> wrote: >>>>>>> >>>>>>>> I looked at the job ID you quoted, and yes, it suffers from >>>>>>>> excessive fusion. I wish we had tooling to automatically detect that >>>>>>>> and >>>>>>>> emit a warning, but we don't have that yet. >>>>>>>> >>>>>>>> Here's an example of how you can break fusion: >>>>>>>> https://github.com/apache/beam/blob/master/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcIO.java#L326-L339 >>>>>>>> >>>>>>>> On Mon, Jun 5, 2017 at 1:27 PM Sourabh Bajaj < >>>>>>>> sourabhba...@google.com> wrote: >>>>>>>> >>>>>>>>> Yes you're correct. >>>>>>>>> >>>>>>>>> On Mon, Jun 5, 2017 at 1:23 PM Morand, Sebastien < >>>>>>>>> sebastien.mor...@veolia.com> wrote: >>>>>>>>> >>>>>>>>>> Between parenthesis of each step I meant the number of records in >>>>>>>>>> output >>>>>>>>>> >>>>>>>>>> When I ungroup I send again the 200 data? not the 20M? >>>>>>>>>> >>>>>>>>>> Shouldn't I do instead: >>>>>>>>>> Read (200) -> GroupByKey (200) -> UnGroup(20M) -> combine (20M) >>>>>>>>>> -> clean (20M) -> filter (20M) -> insert >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Sébastien MORAND* >>>>>>>>>> Team Lead Solution Architect >>>>>>>>>> Technology & Operations / Digital Factory >>>>>>>>>> Veolia - Group Information Systems & Technology (IS&T) >>>>>>>>>> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >>>>>>>>>> <+33%201%2085%2057%2071%2008> >>>>>>>>>> Bureau 0144C (Ouest) >>>>>>>>>> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >>>>>>>>>> *www.veolia.com <http://www.veolia.com>* >>>>>>>>>> <http://www.veolia.com> >>>>>>>>>> <https://www.facebook.com/veoliaenvironment/> >>>>>>>>>> <https://www.youtube.com/user/veoliaenvironnement> >>>>>>>>>> <https://www.linkedin.com/company/veolia-environnement> >>>>>>>>>> <https://twitter.com/veolia> >>>>>>>>>> >>>>>>>>>> On 5 June 2017 at 22:17, Sourabh Bajaj <sourabhba...@google.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> I think you need to do something like: >>>>>>>>>>> >>>>>>>>>>> Read (200) -> GroupByKey (200) -> UnGroup(200) [Not this can be >>>>>>>>>>> on 200 different workers] -> combine (20M) -> clean (20M) -> >>>>>>>>>>> filter (20M) -> insert >>>>>>>>>>> >>>>>>>>>>> On Mon, Jun 5, 2017 at 1:14 PM Morand, Sebastien < >>>>>>>>>>> sebastien.mor...@veolia.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Yes fusion looks like my problem. A job ID to look at: >>>>>>>>>>>> 2017-06-05_10_14_25-5856213199384263626. >>>>>>>>>>>> >>>>>>>>>>>> The point is in your link: >>>>>>>>>>>> << >>>>>>>>>>>> For example, one case in which fusion can limit Dataflow's >>>>>>>>>>>> ability to optimize worker usage is a "high fan-out" ParDo. In >>>>>>>>>>>> such an >>>>>>>>>>>> operation, you might have an input collection with relatively few >>>>>>>>>>>> elements, >>>>>>>>>>>> but the ParDo produces an output with hundreds or thousands of >>>>>>>>>>>> times as >>>>>>>>>>>> many elements, followed by another ParDo >>>>>>>>>>>> >> >>>>>>>>>>>> >>>>>>>>>>>> This is exactly what I'm doing in the step >>>>>>>>>>>> transform-combine-7d5ad942 in the above job id. >>>>>>>>>>>> >>>>>>>>>>>> As fas as I understand, I should create a GroupByKey after the >>>>>>>>>>>> transform-combine-7d5ad942 on a unique field and then ungroup the >>>>>>>>>>>> data? >>>>>>>>>>>> (meaning I add two operations in the pipeline to help the worker? >>>>>>>>>>>> >>>>>>>>>>>> Right now: >>>>>>>>>>>> Read (200) -> combine (20M) -> clean (20M) -> filter (20M) -> >>>>>>>>>>>> insert >>>>>>>>>>>> >>>>>>>>>>>> Will become: >>>>>>>>>>>> Read (200) -> combine (20M) -> GroupByKey (20M) -> ungroup >>>>>>>>>>>> (20M) -> clean (20M) -> filter (20M) -> insert >>>>>>>>>>>> >>>>>>>>>>>> It this the right way? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Sébastien MORAND* >>>>>>>>>>>> Team Lead Solution Architect >>>>>>>>>>>> Technology & Operations / Digital Factory >>>>>>>>>>>> Veolia - Group Information Systems & Technology (IS&T) >>>>>>>>>>>> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >>>>>>>>>>>> <+33%201%2085%2057%2071%2008> >>>>>>>>>>>> Bureau 0144C (Ouest) >>>>>>>>>>>> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >>>>>>>>>>>> *www.veolia.com <http://www.veolia.com>* >>>>>>>>>>>> <http://www.veolia.com> >>>>>>>>>>>> <https://www.facebook.com/veoliaenvironment/> >>>>>>>>>>>> <https://www.youtube.com/user/veoliaenvironnement> >>>>>>>>>>>> <https://www.linkedin.com/company/veolia-environnement> >>>>>>>>>>>> <https://twitter.com/veolia> >>>>>>>>>>>> >>>>>>>>>>>> On 5 June 2017 at 21:42, Eugene Kirpichov <kirpic...@google.com >>>>>>>>>>>> > wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Do you have a Dataflow job ID to look at? >>>>>>>>>>>>> It might be due to fusion >>>>>>>>>>>>> https://cloud.google.com/dataflow/service/dataflow-service-desc#preventing-fusion >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Jun 5, 2017 at 12:13 PM Prabeesh K. < >>>>>>>>>>>>> prabsma...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Please try using *--worker_machine_type* n1-standard-4 or >>>>>>>>>>>>>> n1-standard-8 >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 5 June 2017 at 23:08, Morand, Sebastien < >>>>>>>>>>>>>> sebastien.mor...@veolia.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> I do have a problem with my tries to test scaling on >>>>>>>>>>>>>>> dataflow. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> My dataflow is pretty simple: I get a list of files from >>>>>>>>>>>>>>> pubsub, so the number of files I'm going to use to feed the >>>>>>>>>>>>>>> flow is well >>>>>>>>>>>>>>> known at the begining. Here are my steps: >>>>>>>>>>>>>>> Let's say I have 200 files containing about 20,000,000 of >>>>>>>>>>>>>>> records >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - *First Step:* Read file contents from storage: files >>>>>>>>>>>>>>> are .tar.gz containing each 4 files (CSV). I return the file >>>>>>>>>>>>>>> content as the >>>>>>>>>>>>>>> whole in a record >>>>>>>>>>>>>>> *OUT:* 200 records (one for each file containing the >>>>>>>>>>>>>>> data of all 4 files). Bascillacy it's a dict : {file1: >>>>>>>>>>>>>>> content_of_file1, >>>>>>>>>>>>>>> file2: content_of_file2, etc...} >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - *Second step:* Joining the data of the 4 files in one >>>>>>>>>>>>>>> record (the main file contains foreign key to get >>>>>>>>>>>>>>> information from the >>>>>>>>>>>>>>> other files) >>>>>>>>>>>>>>> *OUT:* 20,000,000 records each for every line in the >>>>>>>>>>>>>>> files. Each record is a list of string >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - *Third step:* cleaning data (convert to prepare >>>>>>>>>>>>>>> integration in bigquery) and set them as a dict where keys >>>>>>>>>>>>>>> are bigquery >>>>>>>>>>>>>>> column name. >>>>>>>>>>>>>>> *OUT:* 20,000,000 records as dict for each record >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - *Fourth step:* insert into bigquery >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> So the first step return 200 records, but I have 20,000,000 >>>>>>>>>>>>>>> records to insert. >>>>>>>>>>>>>>> This takes about 1 hour and half and always use 1 worker ... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> If I manually set the number of workers, it's not really >>>>>>>>>>>>>>> faster. So for an unknow reason, it doesn't scale, any ideas >>>>>>>>>>>>>>> how to do it? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks for any help. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Sébastien MORAND* >>>>>>>>>>>>>>> Team Lead Solution Architect >>>>>>>>>>>>>>> Technology & Operations / Digital Factory >>>>>>>>>>>>>>> Veolia - Group Information Systems & Technology (IS&T) >>>>>>>>>>>>>>> Cell.: +33 7 52 66 20 81 / Direct: +33 1 85 57 71 08 >>>>>>>>>>>>>>> <+33%201%2085%2057%2071%2008> >>>>>>>>>>>>>>> Bureau 0144C (Ouest) >>>>>>>>>>>>>>> 30, rue Madeleine-Vionnet - 93300 Aubervilliers, France >>>>>>>>>>>>>>> *www.veolia.com <http://www.veolia.com>* >>>>>>>>>>>>>>> <http://www.veolia.com> >>>>>>>>>>>>>>> <https://www.facebook.com/veoliaenvironment/> >>>>>>>>>>>>>>> <https://www.youtube.com/user/veoliaenvironnement> >>>>>>>>>>>>>>> <https://www.linkedin.com/company/veolia-environnement> >>>>>>>>>>>>>>> <https://twitter.com/veolia> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -------------------------------------------------------------------------------------------- >>>>>>>>>>>>>>> This e-mail transmission (message and any attached files) >>>>>>>>>>>>>>> may contain information that is proprietary, privileged and/or >>>>>>>>>>>>>>> confidential >>>>>>>>>>>>>>> to Veolia Environnement and/or its affiliates and is intended >>>>>>>>>>>>>>> exclusively >>>>>>>>>>>>>>> for the person(s) to whom it is addressed. If you are not the >>>>>>>>>>>>>>> intended >>>>>>>>>>>>>>> recipient, please notify the sender by return e-mail and delete >>>>>>>>>>>>>>> all copies >>>>>>>>>>>>>>> of this e-mail, including all attachments. Unless expressly >>>>>>>>>>>>>>> authorized, any >>>>>>>>>>>>>>> use, disclosure, publication, retransmission or dissemination >>>>>>>>>>>>>>> of this >>>>>>>>>>>>>>> e-mail and/or of its attachments is strictly prohibited. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Ce message electronique et ses fichiers attaches sont >>>>>>>>>>>>>>> strictement confidentiels et peuvent contenir des elements dont >>>>>>>>>>>>>>> Veolia >>>>>>>>>>>>>>> Environnement et/ou l'une de ses entites affiliees sont >>>>>>>>>>>>>>> proprietaires. Ils >>>>>>>>>>>>>>> sont donc destines a l'usage de leurs seuls destinataires. Si >>>>>>>>>>>>>>> vous avez >>>>>>>>>>>>>>> recu ce message par erreur, merci de le retourner a son >>>>>>>>>>>>>>> emetteur et de le >>>>>>>>>>>>>>> detruire ainsi que toutes les pieces attachees. L'utilisation, >>>>>>>>>>>>>>> la >>>>>>>>>>>>>>> divulgation, la publication, la distribution, ou la >>>>>>>>>>>>>>> reproduction non >>>>>>>>>>>>>>> expressement autorisees de ce message et de ses pieces >>>>>>>>>>>>>>> attachees sont >>>>>>>>>>>>>>> interdites. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -------------------------------------------------------------------------------------------- >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -------------------------------------------------------------------------------------------- >>>>>>>>>>>> This e-mail transmission (message and any attached files) may >>>>>>>>>>>> contain information that is proprietary, privileged and/or >>>>>>>>>>>> confidential to >>>>>>>>>>>> Veolia Environnement and/or its affiliates and is intended >>>>>>>>>>>> exclusively for >>>>>>>>>>>> the person(s) to whom it is addressed. If you are not the intended >>>>>>>>>>>> recipient, please notify the sender by return e-mail and delete >>>>>>>>>>>> all copies >>>>>>>>>>>> of this e-mail, including all attachments. Unless expressly >>>>>>>>>>>> authorized, any >>>>>>>>>>>> use, disclosure, publication, retransmission or dissemination of >>>>>>>>>>>> this >>>>>>>>>>>> e-mail and/or of its attachments is strictly prohibited. >>>>>>>>>>>> >>>>>>>>>>>> Ce message electronique et ses fichiers attaches sont >>>>>>>>>>>> strictement confidentiels et peuvent contenir des elements dont >>>>>>>>>>>> Veolia >>>>>>>>>>>> Environnement et/ou l'une de ses entites affiliees sont >>>>>>>>>>>> proprietaires. Ils >>>>>>>>>>>> sont donc destines a l'usage de leurs seuls destinataires. Si vous >>>>>>>>>>>> avez >>>>>>>>>>>> recu ce message par erreur, merci de le retourner a son emetteur >>>>>>>>>>>> et de le >>>>>>>>>>>> detruire ainsi que toutes les pieces attachees. L'utilisation, la >>>>>>>>>>>> divulgation, la publication, la distribution, ou la reproduction >>>>>>>>>>>> non >>>>>>>>>>>> expressement autorisees de ce message et de ses pieces attachees >>>>>>>>>>>> sont >>>>>>>>>>>> interdites. >>>>>>>>>>>> >>>>>>>>>>>> -------------------------------------------------------------------------------------------- >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -------------------------------------------------------------------------------------------- >>>>>>>>>> This e-mail transmission (message and any attached files) may >>>>>>>>>> contain information that is proprietary, privileged and/or >>>>>>>>>> confidential to >>>>>>>>>> Veolia Environnement and/or its affiliates and is intended >>>>>>>>>> exclusively for >>>>>>>>>> the person(s) to whom it is addressed. If you are not the intended >>>>>>>>>> recipient, please notify the sender by return e-mail and delete all >>>>>>>>>> copies >>>>>>>>>> of this e-mail, including all attachments. Unless expressly >>>>>>>>>> authorized, any >>>>>>>>>> use, disclosure, publication, retransmission or dissemination of this >>>>>>>>>> e-mail and/or of its attachments is strictly prohibited. >>>>>>>>>> >>>>>>>>>> Ce message electronique et ses fichiers attaches sont strictement >>>>>>>>>> confidentiels et peuvent contenir des elements dont Veolia >>>>>>>>>> Environnement >>>>>>>>>> et/ou l'une de ses entites affiliees sont proprietaires. Ils sont >>>>>>>>>> donc >>>>>>>>>> destines a l'usage de leurs seuls destinataires. Si vous avez recu ce >>>>>>>>>> message par erreur, merci de le retourner a son emetteur et de le >>>>>>>>>> detruire >>>>>>>>>> ainsi que toutes les pieces attachees. L'utilisation, la >>>>>>>>>> divulgation, la >>>>>>>>>> publication, la distribution, ou la reproduction non expressement >>>>>>>>>> autorisees de ce message et de ses pieces attachees sont interdites. >>>>>>>>>> >>>>>>>>>> -------------------------------------------------------------------------------------------- >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -------------------------------------------------------------------------------------------- >>>>> This e-mail transmission (message and any attached files) may contain >>>>> information that is proprietary, privileged and/or confidential to Veolia >>>>> Environnement and/or its affiliates and is intended exclusively for the >>>>> person(s) to whom it is addressed. If you are not the intended recipient, >>>>> please notify the sender by return e-mail and delete all copies of this >>>>> e-mail, including all attachments. Unless expressly authorized, any use, >>>>> disclosure, publication, retransmission or dissemination of this e-mail >>>>> and/or of its attachments is strictly prohibited. >>>>> >>>>> Ce message electronique et ses fichiers attaches sont strictement >>>>> confidentiels et peuvent contenir des elements dont Veolia Environnement >>>>> et/ou l'une de ses entites affiliees sont proprietaires. Ils sont donc >>>>> destines a l'usage de leurs seuls destinataires. Si vous avez recu ce >>>>> message par erreur, merci de le retourner a son emetteur et de le detruire >>>>> ainsi que toutes les pieces attachees. L'utilisation, la divulgation, la >>>>> publication, la distribution, ou la reproduction non expressement >>>>> autorisees de ce message et de ses pieces attachees sont interdites. >>>>> >>>>> -------------------------------------------------------------------------------------------- >>>>> >>>> >>>> >> >> >> >> -------------------------------------------------------------------------------------------- >> This e-mail transmission (message and any attached files) may contain >> information that is proprietary, privileged and/or confidential to Veolia >> Environnement and/or its affiliates and is intended exclusively for the >> person(s) to whom it is addressed. If you are not the intended recipient, >> please notify the sender by return e-mail and delete all copies of this >> e-mail, including all attachments. Unless expressly authorized, any use, >> disclosure, publication, retransmission or dissemination of this e-mail >> and/or of its attachments is strictly prohibited. >> >> Ce message electronique et ses fichiers attaches sont strictement >> confidentiels et peuvent contenir des elements dont Veolia Environnement >> et/ou l'une de ses entites affiliees sont proprietaires. Ils sont donc >> destines a l'usage de leurs seuls destinataires. Si vous avez recu ce >> message par erreur, merci de le retourner a son emetteur et de le detruire >> ainsi que toutes les pieces attachees. L'utilisation, la divulgation, la >> publication, la distribution, ou la reproduction non expressement >> autorisees de ce message et de ses pieces attachees sont interdites. >> >> -------------------------------------------------------------------------------------------- >> >