2016-07-22 6 views
1

Nous créons actuellement un cube OLAP en utilisant une dimension dégénérée basée sur notre table de faits pour lier à une autre table de faits. Nous avons la base de données source sur SQL Server 2012 avec le niveau de compatibilité défini sur SQL Server 2012 (110). Nous avons également défini la stringstoragecompatibilitylevel sur cette dimension dégénérée à 1100. Nous sommes même allés jusqu'à définir toutes les dimensions et partitions de cube à utiliser 1100. Et pourtant, nous obtenons toujours l'erreur suivante:Erreur de réception sur une taille de fichier de 4 Go Même avec un niveau de compatibilité de 1100

Processing Dimension Attribute 'Data Time Period ID' failed. 155130000 rows have been read. 
    Start time: 7/21/2016 9:31:08 AM; End time: 7/22/2016 10:08:00 AM; Duration: 24:36:52 
    Error Messages 1 
     File system error: A string store or binary store with a compatibility level of '1050' 
     is at the maximum file size of 4 gigabytes. To store additional strings, you can change 
     the StringStoresCompatibilityLevel property of the associated dimension or distinct count 
     measure to '1100' and reprocess. This option is only available on databases with a 
     compatibility level of '1100' or higher. 
     Physical file: \\?\I:\s2012\OLAP\Data\DATAwarehouse.0.db\DimfactDegenerate.0.dim\18.Data Time Period ID.asstore. 
     Logical file: . 
     Errors in the OLAP storage engine: An error occurred while the 'Data Time Period ID' attribute 
     of the 'DimfactDegenerate' dimension from the 'DATAwarehouse' database was being processed. 

La cible base de données OLAP, les dimensions, les partitions de cube, et l'entrepôt de données source sont tous à utiliser 1100. J'ai vérifié la base de données OLAP/dimensions/partitions sont tous sur 1100 en scriptant la base de données et la recherche du niveau de compatibilité. J'ai même cherché 1050 et il n'apparaît pas dans le script.

Il y a environ 900 millions d'enregistrements dans la table de faits. La table de pont contient 1,8 milliard d'enregistrements. La taille totale de seulement les 2 colonnes utilisées dans la dimension dégénérée basée sur la table de faits est d'environ 15 Go (basée sur la sortie de fichier plat de ces colonnes - tout en arrière de l'enveloppe). Toutes les lignes ajoutées à la dimension dégénérée sont uniques. En lisant comment le niveau de compatibilité doit "passer", nous sommes satisfaits:

  1. La source de la base de données est sur SQL Server 2012 avec un niveau de compatibilité défini.
  2. base de données OLAP cible utilise 1100 compatibilité
  3. partitions Cube utilisent 1100 la compatibilité
  4. Dimensions utilisent 1100 la compatibilité
  5. Il y a moins de 65 milliards d'enregistrements
  6. Tous les enregistrements sont uniques

Qu'est-ce que D'autres options ou changements de conception dois-je contourner cette erreur apparemment improbable?

+0

Salut, je suis face à cette question en ce moment. Pouvez-vous s'il vous plaît laissez-moi savoir, comment vous avez résolu ce problème? – Chandru

+0

@Chandru, je crois que ma dernière "solution" était juste de recréer le projet OLAP à partir de rien tout d'abord à 1100. Quelque chose dans les XML de construction n'était pas mis à jour si je définissais la compatibilité après avoir fait un build/process. Pas vraiment la meilleure solution, mais c'est comme ça que je l'ai fait. – wergeld

+0

Merci pour votre réponse. D'accord, va essayer cette solution. Si vous êtes venu à connaître une autre solution différente, laissez-nous savoir. – Chandru

Répondre

-1

après la mise à jour stringstoragecompatibilitylevel à 1100 la dimension processus en mode FULL - cela doit corriger l'erreur