2017-08-10 2 views
0

J'ai le scénario suivant. Une table de dimensions, par ex. Le produit est chargé dans SQL Server 2016. Une table de faits, par ex. ORDER_ITEM est chargé dans Hadoop. Je souhaite exécuter une requête globale sur PRODUCT et ORDER_ITEM, par exemple.Pushdown dans Polybase

SELECT 
PRODUCT.PRODUCT_CATEGORY, 
SUM(ORDER_ITEM.AMOUNT) 
FROM 
HADOOP.ORDER_ITEM OI 
JOIN RDBMS.PRODUCT P ON (OI.PRODUCT_ID = P.PRODUCT_ID) 
GROUP BY 
    PRODUCT.PRODUCT_CATEGORY 

Quel est le comportement. (1) Polybase diffuse-t-il la dimension PRODUCT dans Hadoop? Effectue la jointure et l'agrégation et renvoie le résultat (2) Polybase diffuse-t-il la table ORDER_ITEM dans SQL Server et y extrait-il la jointure et l'agrégation?

Il est probablement (2), mais si quelqu'un a essayé en me le faire savoir

Répondre

1

POLYBASE ne se déplace jamais des données de SQL Server, indépendamment du volume de données. En fonction des statistiques, PolyBase peut:

A) Rétablir la table order_item à SQL Server et calculer la jointure et agréger les données. B) Poussez vers le bas un groupe Somme globale partielle (Order_Item.Amount) par OI.ProductiD, diffusez l'ensemble de résultats vers SQL Server, puis effectuez la jointure finale et finale dans SQL Server.