問題タブ [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.
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を使用)
1000 レコードを 5 つの個別のステージ テーブル (ステージ 1、ステージ 2 など) にロードしました。
/li>5 つのファクト テーブル (fact1、fact2 など) を作成しました。各テーブルにはステージと同じ 4 つの列があり、最初の列のハッシュを使用して分散されます。列ストア インデックスは含めませんでした (これは単なるテストであることを忘れないでください)。
/li>ステージからファクトにデータを挿入する 5 つのストアド プロシージャを作成しました。
/li>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 が内部で行っていることを説明する際に、どんな助けもいただければ幸いです。
ありがとうございました
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;
問題を解決するために私を助けてください。
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].,},],'.
任意のポインタをいただければ幸いです。
azure-sqldw - Azure SQL Data Warehouse の CTAS 統計
SQL Data Warehouse の "Create table as" 関数はバックグラウンドで統計を作成しますか、それとも (通常の "Create table" ステートメントを実行する場合と同様に) 手動で作成する必要がありますか?
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 ドライバーは、これらの文字が中括弧で囲まれている場合、エスケープをサポートしています。たとえば、{;} はセミコロンをエスケープします。エスケープされた値には、特殊文字 (特に「=」、「;」、「[]」、およびスペース) を含めることができますが、中括弧を含めることはできません。エスケープする必要があり、中かっこを含む値は、プロパティ コレクションに追加する必要があります。
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#のソリューションがあります