問題タブ [azure-sqldw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
552 参照

azure - Azure SQL DW Concurrency をテストすると、内部的に Azure がプロシージャを同時に実行していないことが示されます

SQL Data Warehouse の Azure コンカレンシーとワークロード管理 https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-develop-concurrency/を読ん で、スケールに基づいて使用できる同時クエリですが、私が理解できないため、ここで質問を提起するのは、ドキュメントの状態をテストするときに、Azure が主張する結果を得ることができないということです。クエリを同時に実行すると、シリアルで実行するのとほぼ同じ時間がかかります。

例 ここにテストの例を示します (単なるテストです) 5 つのストアド プロシージャがあり、個別に実行すると、完了するまでにそれぞれ約 1 秒かかります。したがって、5 つすべてを連続して実行すると約 5 秒かかりますが、これは予想どおりですが、5 つすべての sproc を同時に実行すると、1 秒強で完了すると予想されますが、完了するまでに約 4.5 ~ 4.7 秒かかります。

Azure の専門家が何が起こっているのか説明できますか?

リソースの競合ではないかと思いましたが、5 つの sproc が実行されている間、sys.dm_pdw_resource_waits はブロックを示していません。

sys.dm_pdw_exec_requests を実行すると、5 つの exec sproc クエリがすべて数ミリ秒以内に送信されていることがわかります。Start_time と End_compile_time についても同様です。5 つの sproc すべての end_time は再び数ミリ秒以内ですが、Total_elapsed_time は予想される 1000 ミリ秒ではなく 5000 ミリ秒に近づいています。sproc を単独で実行すると、所要時間は約 1000 ミリ秒になります。Concurrency は 5 つの sproc を同時に開始するかのように見えますが、内部的にはキューに入れられ、順番に実行されます。私はもともと、5 つの sproc に十分な 8 つのスロットを持つ DW200 でテストしていました。安全のために、最大 32 個の同時クエリを許可する DW1000 にスケールアウトしましたが (smallrc を使用しています)、この問題は解決しませんでした。

これをテストした方法は次のとおりです(DW1000を使用)

  1. 1000 レコードを 5 つの個別のステージ テーブル (ステージ 1、ステージ 2 など) にロードしました。

    /li>
  2. 5 つのファクト テーブル (fact1、fact2 など) を作成しました。各テーブルにはステージと同じ 4 つの列があり、最初の列のハッシュを使用して分散されます。列ストア インデックスは含めませんでした (これは単なるテストであることを忘れないでください)。

    /li>
  3. ステージからファクトにデータを挿入する 5 つのストアド プロシージャを作成しました。

    /li>
  4. C# で、5 つの接続とコマンドを作成し、BeginExecuteReader/EndExecuteReader を使用して sproc を実行するクイック テスト メソッドを作成しました。(これは単なるテストなので、スタイル/コードは許してください)

    /li>

この C# コードをデバッグする場合、reader1 = cmd1.EndExecuteReader(result1); という行に到達するまで、各ステートメントは 1 ミリ秒未満です。ここでは、4 ~ 5 秒待機してから次に進み、その後のすべての行が再び高速になります (<1ms)。

その遅延の間に select * from sys.dm_pdw_exec_requests を実行すると、5 つの要求すべてがキューに入れられて実行されていることがわかります。クエリの再実行を続けると、クエリの実行時間が長くなり続け、突然 (約 5 秒) 5 つのクエリすべてが完了したと表示されます。

私が間違っていること、または Azure SQL DW が内部で行っていることを説明する際に、どんな助けもいただければ幸いです。

ありがとうございました

0 投票する
1 に答える
1511 参照

java - JDBC を使用して Azure SQL Data Warehouse に接続中に SQLException

JDBC を介して Azure SQL Data Warehouse に接続しようとしています。次の例外が発生しています。

*

*

ここで、SQLServer DB への接続について同様の質問が寄せられるのを見てきました。

こちらのプロセスを使用して、自分の IP へのアクセスを許可するようにデータベースを構成しました。

以下のコードを確認してください。

接続文字列の合計は

jdbc:sqlserver://databaseserver.database.windows.net:1433;database=databaseserver;user=username@databaseserver;password=password;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout= 30;

問題を解決するために私を助けてください。

0 投票する
1 に答える
2037 参照

azure-data-factory - DataFactory を使用して Azure Blob から SQL Datawarehouse にデータをコピーしようとすると例外が発生する

コピー アクティビティを使用してデータを BLOB から SQL Datawarehouse に移動するパイプラインを作成しました。

パイプラインを実行すると、次のエラーが発生します。

データベースの操作に失敗しました。
データベース実行からのエラー メッセージ: ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=SQL Data Warehouse にデータを読み込むときにエラーが発生しました.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException, Message=110802; 内部 DMS エラーが発生したため、この操作は失敗しました。詳細: 例外: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException、メッセージ: HdfsBridge_CreateRecordReader の呼び出しで Java 例外が発生しました: エラー [HdfsBridge::CreateRecordReader - レコード リーダーの作成中に予期しないエラーが発生しました。] 外部ファイルへのアクセス中に発生しました [ /hive/warehouse/tradesummary/000000_0][0].,Source=.Net SqlClient Data Provider,SqlErrorNumber=110802,Class=16,ErrorCode=-2146232060,State=1,Errors=[{Class=16,Number=110802 ,状態=1, Message=110802; 内部 DMS エラーが発生したため、この操作は失敗しました。詳細: 例外: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException、メッセージ: HdfsBridge_CreateRecordReader の呼び出しで Java 例外が発生しました: エラー [HdfsBridge::CreateRecordReader - レコード リーダーの作成中に予期しないエラーが発生しました。] 外部ファイルへのアクセス中に発生しました [ /hive/warehouse/tradesummary/000000_0][0].,},],'.

任意のポインタをいただければ幸いです。

0 投票する
1 に答える
241 参照

azure-sqldw - Azure SQL Data Warehouse の CTAS 統計

SQL Data Warehouse の "Create table as" 関数はバックグラウンドで統計を作成しますか、それとも (通常の "Create table" ステートメントを実行する場合と同様に) 手動で作成する必要がありますか?

0 投票する
1 に答える
240 参照

jdbc - Azure SQL Data Warehouse 接続文字列のパラメーター内のスペース

現在、Azure SQL Data Warehouse の JDBC 接続文字列を新しい仕様にアップグレードしています。具体的には、次の内容を追加していますApplication Name=MyApp

これが私の問題です。次の文字列を使用してサーバーに接続します。

アプリケーション名を文字列に追加すると、次のようになります。

Applicationとの間のスペースを参照してくださいName

私の質問は - これは正しいですか? そして、そのスペースを次のようなものにエンコードする必要があり%20ますか?

接続文字列が URL の場合、Microsoft ドキュメントのどこにもこの必要性について言及されていません。

編集 1: JDBC 接続文字列に関連するものを見つけましたが、スペースを含む可能性のあるパラメーターは指定されていません: https://azure.microsoft.com/en-us/documentation/articles/sql-data-倉庫接続の概要/

編集2:ここでこれを見つけました

接続 URL の値のエスケープ スペース、セミコロン、引用符などの特殊文字が含まれているため、接続 URL 値の特定の部分をエスケープする必要がある場合があります。JDBC ドライバーは、これらの文字が中括弧で囲まれている場合、エスケープをサポートしています。たとえば、{;} はセミコロンをエスケープします。エスケープされた値には、特殊文字 (特に「=」、「;」、「[]」、およびスペース) を含めることができますが、中括弧を含めることはできません。エスケープする必要があり、中かっこを含む値は、プロパティ コレクションに追加する必要があります。

0 投票する
2 に答える
5229 参照

sql - CTE を使用しない親子階層パス

こんにちは、次のテーブルがあります。

ここで、機能は別の機能を親として持つか、シナリオを親として持つことができます。シナリオの場合、親 ID は 0 または別のシナリオのいずれかです。

次のように各機能のパスを取得したいと思います。

この結果をさらに処理するために一時テーブルに収集したいので、試してみるselect intoと、Azure SQL DW がスローされますUsing SELECT INTO statement is not supported in Parallel Data Warehouse. Modify the statement and re-try executing it.

これが私のクエリです(再帰SQLをまだ考えているので、うまくいかないかもしれません)

CTEを変換してCTASを使用しようとしましたが、どちらも機能しませんでした。

これは私がCTASを試した方法です:

今、各機能のパスを取得しAzure SQL DW、結果をテーブルに収集する方法があるかどうか疑問に思っています。

- アップデート -

SQLでの解決策については、これを参照してください

ここにC#のソリューションがあります