All -intérieur U-SQL crée un énorme Rejoignez grand fichier d'écriture
J'ai quelques questions à l'aide de tables et se joindre à ADLA de les charger dans SQL Azure DW.
Je suis bloqué sur l'un des processus de chargement et je ne sais pas comment résoudre ce problème. J'ai quelques informations d'achat qui quand je tire du système on-prem dans ADLS crée le dossier de sortie d'environ 25 Mo chacun et quand j'essaye de les joindre à employer "INNER JOIN" dans le travail d'ADLA il continue à courir pendant longtemps. En cours d'exécution, je vois que le fichier de sortie continue à plus de 5+ Go. Je pense que c'est trop pour un fichier de 25 Mo et je ne sais pas si je fais quelque chose de mal (capture d'écran jointe pour référence lors de l'exécution de VS). Le processus que je fais est - 1- charger les données de la base de données ADB sur le cloud ADLS en utilisant ADF 2- exécuter le travail ADLA pour extraire le fichier ADLS dans la table ADLA et partitionner en utilisant l'option ROUND ROBIN pour éviter les problèmes d'asymétrie Le travail ADLA créerait un fichier agrégé dans le pipeline ADF 4- ADF pour charger le fichier # 3 dans Azure SQL DW
Des pointeurs ou de l'aide pourraient être très utiles.
Merci, Shabbir
Voici le code (j'ai supprimé tous les noms de champs et de l'information client). J'espère que cela t'aides.
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 : '|');
Ceci est exécuté lancer un pipeline ADF et en utilisant des paramètres externes pour les chemins de date et de fichier.
Veuillez poster le code U-SQL que vous utilisez. – wBob
Bob, j'ai ajouté un extrait de code dans mes questions. Merci d'avance. –
Si votre jointure entraîne une augmentation du volume de données, il est probable que vous ayez des valeurs en double dans vos colonnes de jointure.Si une valeur est présente 100 fois dans la table de gauche et 1000 fois dans la table de droite, cela conduira à 100 000 lignes dans la sortie (produit cartésien). Pourriez-vous vérifier cela, par exemple en chargeant vos données dans Power BI? –