I think you nailed it. This is the problem. I will follow the approach you 
indicated. Thank you Michael. I appreciate it. 

On Tuesday, April 2, 2013 1:35:07 PM UTC-7, Michael Bayer wrote:

> if you're doing a query that is causing the database connection to simply 
> fail, then you'd need to address that issue primarily.   you'd probably 
> want to perform multiple insert statements, chunking about 5-10K records at 
> at time.
>
>
> On Apr 2, 2013, at 1:26 PM, algot...@gmail.com <javascript:> wrote:
>
> To clarify my environment. I have a VM (Linux Redhat) which has MySQL 
> server running on it. My script runs locally on the same machine. It is a 
> simple script that is doing a insert many after processing/parsing a csv 
> file. I don't have any web apps or anything of that nature. 
>
> On Monday, April 1, 2013 7:04:48 PM UTC-7, algot...@gmail.com wrote:
>>
>> I am using the sqlalchemy package in python. I have an operation that 
>> takes some time to execute after I perform an autoload on an existing 
>> table. This causes the following error when I attempt to use the connection:
>>
>> sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has 
>> gone away')
>>
>> I have a simple utility function that performs an insert many:
>>
>> def insert_data(data_2_insert, table_name):
>>     engine = create_engine('mysql://blah:blah123@localhost/dbname')
>>     # Metadata is a Table catalog. 
>>     metadata = MetaData()
>>     table = Table(table_name, metadata, autoload=True, autoload_with=engine)
>>     for c in mytable.c:
>>         print c
>>     column_names = tuple(c.name for c in mytable.c)
>>     final_data = [dict(zip(column_names, x)) for x in data_2_insert]
>>     ins = mytable.insert()
>>     conn = engine.connect()
>>     conn.execute(ins, final_data)
>>     conn.close()
>>
>>
>> It is the following line that times long time to execute since 
>> 'data_2_insert' has 677,161 rows. 
>>
>> final_data = [dict(zip(column_names, x)) for x in data_2_insert]
>>
>> I came across the following post below which refers to a similar problem, 
>> however I am not sure how to implement the connection management suggested 
>> as I am quite a newbie. 
>>
>> http://stackoverflow.com/questions/3033234/handle-mysql-restart-in-sqlalchemy
>>
>> Note for SQLAlchemy 0.7 - PoolListener is deprecated, but The same solution 
>> can be implemented using the new event system. – robots.jpg
>>
>> Here is the link to the new event system described by one of the users:
>>
>> http://docs.sqlalchemy.org/en/latest/core/pooling.html#disconnect-handling-pessimistic
>>
>> If someone can please show me a couple of pointers on how I could go 
>> about integrating the suggestions into the way I use sqlalchemy I would be 
>> very appreciative. Thank you. 
>>
>>
>>
>>
>>
>>
>>
>>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+...@googlegroups.com <javascript:>.
> To post to this group, send email to sqlal...@googlegroups.com<javascript:>
> .
> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to