2016-08-19 12 views
4

外部テーブルからSQL DW内部テーブルにデータをロードしようとしています。私はデータストアをBLOBストレージに圧縮フォーマットで格納し、外部テーブルはBLOBストレージロケーションをポイントしています。Azure SQL DWデータのロードに長時間を要する

約22GBのファイルがあり、大規模なリソースクラスサービス/ユーザーアカウントを使用して、外部テーブルから300 DWUの内部テーブルにデータをロードしようとしています。

私のinsert文(非常に簡単です)は10時間以上実行されています。 Trxdata.Details_dataに挿入* Trxdata.Stage_External_Table_details_dataから挿入します。

私も10時間以上実行している以下の声明で試しました。 表Trxdata.Details_data12 をCREATE( DISTRIBUTION = ROUND_ROBIN )WITH AS SELECT * FROM Trxdata.Stage_External_Table_details_data 。

私はどちらのSQLも "sys"のACTIVEステータスで実行しています "dm_pdw_exec_requests" [私は同時実行スロットの問題である可能性がありますが、実行する同時実行スロットを持っていませんでした]

私は、DWUを増やす/拡大することでパフォーマンスが向上することを期待していました。しかしportal.azure.comでDWUの使用状況を見て - DWUの使用チャートは、私が理解しようとしている最後の12時間だから、

DWU USage chart

ため< 50DWUを示していたので、私はDWUを増加すると確信していないです - どのように見つけることができますか?このような長い時間がかかっているのですが、データロードのパフォーマンスを向上させるにはどうすればよいですか?

+0

共有するためのもう一つの迅速な統計、私は7圧縮[LZ4形式]ファイルを処理しようとした - 、6.63ギガバイトのサイジング115分SSMSを走る[400 DWU、largercリソースクラスに完成455万件のレコードを含む、使用の文を挿入し、実行していますBLOBストレージとSQL DWと同じ場所にあるWindows Azure仮想マシンから、BLOB + SQL DW + VMはAzureの同じ場所にあります。 – Aravind

答えて

1

データローディングの最適化については、SQL CATの下のブログをご覧ください。 https://blogs.msdn.microsoft.com/sqlcat/2016/02/06/azure-sql-data-warehouse-loading-patterns-and-strategies/

は、提供情報に基づいて、検討するカップルの事はある:DWインスタンスに比べBLOBファイルの

1)地域。同じ地域にいることを確認してください。 2)Clustered Columnstoreはデフォルトでオンになっています。 22GBのデータをロードしている場合は、HEAPの負荷が向上することがあります(ただし、ローカウントでも不安定です)。だから、: https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-get-started-create-support-ticket/

+0

こんにちは。 1. 2. 22ギガバイトの圧縮ファイルは約11億レコードを格納することが期待されている(米国WEST)同じ場所にあるはい、BLOBおよびSQL DW、私は今、ロードを開始した、私はそれは私もCREATE実行してみました – Aravind

+0

をどのようになるsee-てみましょうHEAP、ない多くの幸運を持つテーブルは、INSERT INTOは、(列ストアのテーブルに)取った - 4時間HEAPで作成すると4時間50分 – Aravind

0

あなたはデータが圧縮形式であることを言及:それでも問題が解決しない場合は

CREATE TABLE Trxdata.Details_data12 
WITH (HEAP, DISTRIBUTION = ROUND_ROBIN) 
AS SELECT * FROM Trxdata.Stage_External_Table_details_data ; 

は、サポートチケットを提出してください。データはいくつの圧縮ファイルに存在しますか?圧縮されたファイルの場合、データが多くのファイルに分散されていると、並列処理が向上し、パフォーマンスが向上します。パフォーマンスを向上させるために、複数のファイルにデータを保存する必要はありません。これがパフォーマンス上の問題であるかどうかをテストする別の方法は、ファイルの圧縮を解除することです。

+0

こんにちはソーニャ、一つの圧縮ファイル(圧縮LZ4で、その中の一つのファイルを取った27分を取りましたフォーマット)。全体で私の24ファイルには1.1Bのレコードが含まれています。そして、すべてのファイルを解凍すると、私は完全に512のファイルを持っている(私は、性能を評価するために、24個のファイルで開始)と、各ファイルが約ある1ギガバイト、各ファイルの非圧縮サイズは、それが見えるように役立つかもしれない10ギガバイト – Aravind

+0

周りになるようにもう少し時間がかかります物品https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-manage-monitor/おそらくHadoopRoundRobinMoveOperationあろう長い実行ステップを確認し、そのDMSリーダーを確認すると作者(sys.dm_pdw_dms_workers)はすべて同じ時間を費やしているので、何らかの処理スキューがありません。可能であれば、ファイルを解凍してパフォーマンスが大幅に異なるかどうかを確認するのがよいテストです。 –

+0

パフォーマンスに影響を与える可能性のあるもう一つのものは、必要な列よりもはるかに広い列を定義することです。 https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-best-practices/#use-the-smallest-possible-column-size –

2

あなたの問題はファイルが圧縮されていると思われます。紺色の文書の多くには、圧縮されたファイルにつき1つのリーダーしか得られないと述べています。テストとして、私はあなたのデータを解凍し、負荷を試して、圧縮解除/ロードが現在表示されている圧縮データを読み込んだ10時間より速いかどうかを確認することをお勧めします。私はあなたのシステムのオプションであれば、1つの大きなファイルではなく、複数のファイルでもっとうまくいっています。

関連する問題