Mise à jour de la politique d'indexation CosmosDb par le biais des modèles ARM

voix
0

Je suis en train d'utiliser des modèles ARM pour mettre à jour la politique d'indexation pour conteneur cosmos. J'ai essayé 2 méthodes, l'une de déclarer simplement la politique d'indexation tout en déclarant le conteneur dans le bras.

{
      apiVersion: [variables('cosmosDbApiVersion')],
      type: Microsoft.DocumentDB/databaseAccounts/apis/databases/containers,
      dependsOn: [ /* resourceId */ ],
      name: /* containerName */,
      properties: {
        resource: {
          id: /* id */,
          partitionKey: {
            paths: [
              /partitionKey
            ],
            kind: Hash
          },
          indexes: [
            {
              indexingMode: consistent,
              automatic: true,
              includedPaths: [
                {
                  path: /*,
                  indexes: [
                    {
                      kind: Range,
                      dataType: Number,
                      precision: -1
                    },
                    {
                      kind: Hash,
                      dataType: String,
                      precision: 3
                    }
                  ]
                }
              ]
            }
          ],
          defaultTtl: [variables('defaultTtlValueToEnableTtl')]
        }
      }
    },

La seconde était d'utiliser pour utiliser ARM pour déployer réglage du conteneur en tant que tel:

{
      apiVersion: [variables('cosmosDbApiVersion')],
      type: Microsoft.DocumentDB/databaseAccounts/apis/databases/containers/settings,
      name: [/* name */,
      dependsOn: [  /* container name */ ],
      properties: {
        resource: {
          throughput: /* some throughput */,
          indexes: [
            {
              indexingMode: consistent,
              automatic: true,
              includedPaths: [
                {
                  path: /*,
                  indexes: [
                    {
                      kind: Range,
                      dataType: Number,
                      precision: -1
                    },
                    {
                      kind: Hash,
                      dataType: String,
                      precision: 3
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    },

Les deux techniques ne manquent pas de déploiement, mais la politique d'indexation ne change pas.

Apprécierait un peu d'aide.

Créé 14/02/2020 à 00:00
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

c'est l'exemple de la référence du modèle (qui ressemble un peu différent de ce que vous faites):

"resource": {
  "id": "string",
  "indexingPolicy": {
    "automatic": "boolean",
    "indexingMode": "string",
    "includedPaths": [
      {
        "path": "string",
        "indexes": [
          {
            "dataType": "string",
            "precision": "integer",
            "kind": "string"
          }
        ]
      }
    ],
    "excludedPaths": [
      {
        "path": "string"
      }
    ],
    "spatialIndexes": [
      {
        "path": "string",
        "types": [
          "string"
        ]
      }
    ]
  },
  xxx
}

https://docs.microsoft.com/en-us/azure/templates/microsoft.documentdb/2019-08-01/databaseaccounts/sqldatabases/containers

Créé 14/02/2020 à 07:52
source utilisateur

voix
0

Gamme et types index de hachage sont ignorés par le fournisseur de ressources Cosmos maintenant pour les nouveaux conteneurs ou des conteneurs qui ont été créés dans l'année écoulée. ARM ne valide pas la politique d'index qui est la raison pour laquelle le modèle va déployer avec succès.

Indice de Hash a été désapprouvée pour ces conteneurs plus récents car les performances de l'indice de gamme dans la nouvelle indexeur est ce que l'indice surpasse hachage fourni donc n'était plus nécessaire.

Pour créer / modifier la stratégie d'index se référer à cet article ci-dessous. Il y a plusieurs exemples de politiques d'indices qui mettent en œuvre tout de très simple aux politiques plus complexes qui incluent des indices composites, des index spatiaux et des clés uniques.

https://docs.microsoft.com/en-us/azure/cosmos-db/manage-sql-with-resource-manager#create-resource

Créé 16/02/2020 à 21:15
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more