すべて -U-SQL Inner Joinは巨大な大きな書き込みファイルを作成します
ADLAを使用してテーブルを結合し、それらをAzure SQL DWにロードする際にいくつかの問題があります。
ロードプロセスの1つに固執しており、その問題をどのように修正できるか不明です。私はいくつかの購入情報を持っています。私はオン・プレ・システムからADLSにそれぞれ25 MB程度の出力ファイルを作成し、ADLAジョブで「INNER JOIN」を使うようにしようとすると、長い時間稼働しています。実行中は、出力ファイルが5GB以上になっています。私は、25 MBのファイルではあまりにも多く、何か間違っているかどうかわからないと感じています(VSから実行している間参照用にスクリーンキャプチャが添付されています)。
私が行うプロセスは、ADFを使用してオンデマンドDBからクラウドADLSストアへデータをロードします.2つのADLAジョブを実行してADLファイルをADLAテーブルにプルし、ROUND ROBINオプションを使用してデータスキューの問題を回避します。 ADLAジョブは集計ファイルをADLSストアに作成します4- ADFパイプラインを使用して#3ファイルをAzure SQLにロードDW
すべてのポインタまたはヘルプは非常に役に立ちます。
おかげで、Shabbir
はここに(私はすべてのフィールド名とクライアント情報を削除した)のコードです。お役に立てれば。
DECLARE @dir = "/{date:yyyy}/{date:MM}/{date:dd}/<FILE PATH>/";
DECLARE @in_1 string = <FILE #1>;
DECLARE @in_2 string = <FILE #2>;
DECLARE @out string = <OUTPUT FILE>;
@file1 =
EXTRACT
<25 COL. WITH ALL NULLABLE>
date DateTime
FROM @in_1
USING Extractors.Text(delimiter : '|');
@file2 =
EXTRACT
<40 COL. WITH ALL NULLABLE>
date DateTime
FROM @in_2
USING Extractors.Text(delimiter : '|');
@output =
SELECT
<25 + 40 COL. FROM INPUT FILES>
FROM @file1 AS f1
INNER JOIN @file2 AS f2
ON f1.join1 == f2.join2;
OUTPUT @purchase
TO @out
USING Outputters.Text(delimiter : '|');
これは、ADFパイプラインをスローし、日付とファイルのパスに外部パラメータを使用して実行されます。
使用しているU-SQLコードを投稿してください。 – wBob
Bob、私は自分の質問にコードスニペットを追加しました。前もって感謝します。 –
結合でデータ量が増加している場合は、結合列に値が重複している可能性があります。値が左側の表に100回、右側の表に1000回あると、出力(デカルト積)に100,000行が表示されます。 Power BIでデータをロードするなどして確認できますか? –