Monday, March 6, 2017

Marco Ciucci Forex Convertisseur

Conversion de devises dans un modèle tabulaire utilisant DAX Il ya environ un an, j'ai implémenté la logique de conversion de devises en cubes multidimensionnels en utilisant des expressions de mesure (ainsi que l'utilisation de la fonction Feuilles dans MDX). J'ai documenté la mise en œuvre dans quelques messages de blog: J'ai maintenant également mis en œuvre la conversion monétaire dans un cube tabulaire à l'aide de DAX. Ce billet de blog couvre la mise en œuvre dans DAX ainsi que certains des problèmes de performance que j'ai rencontrés et comment je les ai résolus. Vue d'ensemble du modèle de données Les tables requises pour la conversion de devise dans le cube tabulaire sont les mêmes que celles en multidimensionnel. Source Currency Dimension Table Fournit des données sur la devise de conversion. Attributs: Code de devise Code, Code de devise (par exemple, Euros) Monnaie cible Tableau de dimension (facultatif) Je n'ai pas inclus cette dimension dans le modèle tabulaire car nous ne convertirons vers une devise 8211 Dollars américains. Si vous devez convertir en plusieurs devises cibles, cette dimension est requise. Type de taux de change Table de dimension (facultatif) Cette dimension stocke des données concernant différents types de taux de change et peut être inutile en fonction des besoins de l'entreprise. Attributs: Taux de change Type de clé, Type de Taux Date d'Echange Dimension Tableau Attributs: Date clé, Date, Semaine fiscale, Mois d'exercice, etc. Taux de change Fact Table Mesure: Taux de change Autres transactionnelles Fact Tableaux (par exemple, des ventes, des commandes d'achat, etc.) Stocke les mesures à convertir dans la devise cible ainsi que les clés qui se rapportent aux dimensions du taux de conversion (et aux autres dimensions ayant une relation avec le groupe de mesures). Relations dimensionnelles: dimension DateTime (clé de date), dimension de la devise Source (code de devise), dimension du type de taux de change (type de taux de change). Le diagramme ci-dessous montre les relations entre ces tables (ignorant la devise cible dans cette implémentation de cube tabulaire). Les tableaux relatifs à la conversion de devise sont les ventes, la date GL, le taux de conversion de devises, le code de devise (devise source), le type de taux de conversion de devises. Les tables grisées sont masquées dans les outils clients de l'utilisateur final. La mise en œuvre de conversion des devises Utilisation DAX La mesure suivante a été ajoutée à la table de vente du modèle tabulaire pour effectuer la conversion de devises: Montant des ventes USD: SUMX (CROSSJOIN (8216Currency Code8217, Conversion des devises Taux Type8217, GL Date8217), calculez (VALUES (Conversion 8216Currency Rate8217CurrencyRateOv) SUM (8216Sales8217SalesAmountLocal))) J'appris de Marco Sommet PASS Russos présentation (intérieur DAX des plans de requête) que cette formule implique un seul balayage d'une table temporaire (seule SUMX). Le SUMX sur un CROSSJOIN est résolu comme un simple VertiPaq scan utilisant CallbackDataID pour calculer la multiplication. Lorsque je me suis connecté au cube en Excel et découper la mesure par un attribut avec un petit nombre de valeurs distinctes, la performance était très bonne, mais quand j'ai sélectionné un attribut avec un plus grand nombre de valeurs distinctes (plus de 5000), la mesure Jamais retourné une valeur. J'ai amélioré la performance en créant une colonne calculée dans la table Ventes pour stocker le taux de change pour chaque transaction (ligne). Il est important de noter que les valeurs des colonnes calculées sont calculées pendant le traitement et non pas à la volée. La formule DAX pour la colonne calculée de ConversionRate est illustré ci-dessous: LOOKUPVALUE (8216Currency Conversion Rate8217CurrencyRateOv, 8216Currency Conversion Rate8217DateKey, SalesGlDateKey, 8216Currency Conversion Rate8217FromCurrencyKey, SalesCurrencyCodeKey, 8216Currency Conversion Rate8217CurrencyRateTypeKey, 2) LOOKUPVALUE effectue une recherche du taux de conversion pour la transaction sur la base du GL Date (GlDateKey), la devise source (CurrencyCodeKey) et le type de taux de change (CurrencyRateTypeKey). La mesure d'effectuer la conversion de la monnaie réelle en utilisant la colonne ConversionRate calculée est: Montant des ventes USD: SUMX (8216Sales8217, Sales8217SalesAmountLocal 8216Sales8217ConversionRate) Lorsque je me suis relié au cube dans Excel et tranché la mesure par un attribut avec 7000 valeurs distinctes, la performance a été très bien. Bien que j'aie été déçu que je n'arrive pas à mettre en œuvre ce calcul comme une mesure sans la nécessité d'une colonne calculée, je suis heureux que cette mise en œuvre alternative offre d'excellentes performances pour les utilisateurs finaux. Partagez cet article: A Autoridade Plus Confirmer le monde Em Cmbio de Moedas Edition nord-américaine Un yen faible a été le thème principal à ce jour. EUR-USD a soulevé à un pic intraday de 1.0658 au milieu d'une fourrure de vente du dollar, depuis reculant en arrière sous 1.0645 comme le mâle a organisé un rebond. Le mouvement à la hausse a été concomitant avec une baisse en USD-JPY. Lire la suite X25B6 2017-02-13 11:51 UTC European Edition La faiblesse du yen était le principal spectacle en ville dans les transactions pré-Londres en Asie. Le rallye de l'USD-JPY a été ramené brièvement au-dessus de 114.00 aujourd'hui par rapport au 112.86 observé dans le sillage de la conférence de pression de vendredi après la réunion de Trump-Abe, quand l'ancien a dit cela. Lire la suite X25B6 2017-02-13 07:54 UTC Édition asiatique Le commerce des changes a été relativement calme en N. Y. le lundi, et le dollar a été globalement mitigé. Un manque de données a maintenu les marchés axés sur l'équité et les marchés du Trésor, où Wall Street imprimé nouveaux record record, et les rendements ont augmenté. EUR-USD plongé à près. En savoir plus X25B6 2017-02-13 19:05 UTC


No comments:

Post a Comment