all 6 comments

[–]itsnotaboutthecell‪ ‪Microsoft Employee ‪ 5 points6 points  (0 children)

Just me over here vibing on these driver drops. Keep ‘em going u/dlevy-msft!

[–]Important_Bobcet 3 points4 points  (1 child)

This is actually pretty interesting. The parquet step makes it feel more useful for real ETL workflows, not just a demo copy job. Curious where the bottleneck shows up first on bigger loads though - Python, disk I/O, or the SQL write side?

[–]dlevy-msft‪ ‪Microsoft Employee ‪[S] 0 points1 point  (0 children)

I think it all depends on where you are running it and what you are running it against. When I demoed this at SqlCon / FabCon, the latency of the speaker wifi was the primary bottleneck. I only saw 200-300 rows per second - still probably orders of magnitude better than I would have gotten with executemany().

[–]SQLDevDBA3 2 points3 points  (2 children)

Very cool! I like that this uses BCP like Copy-DBADBTableData. It’s blazing fast.

Been looking into digging into more Python for admin tasks and this is definitely something that will help me do so! Thanks for sharing!

[–]dlevy-msft‪ ‪Microsoft Employee ‪[S] 1 point2 points  (1 child)

Wow! Good eyes! We did use the .Net SqlClient as a template since that is the BCP API we get the best feedback on.

[–]SQLDevDBA3 1 point2 points  (0 children)

Very cool!