Creare un keyspace e una tabella con scalabilità automatica per Azure Cosmos DB - API per Cassandra
SI APPLICA A: Cassandra
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Questo esempio richiede Azure PowerShell Az 5.4.0 o versioni successive. Eseguire Get-Module -ListAvailable Az
per determinare le versioni installate.
Se è necessario installarlo, vedere Installare il modulo Azure PowerShell.
Eseguire Connect-AzAccount per accedere ad Azure.
Script di esempio
# Reference: Az.CosmosDB | https://docs.microsoft.com/powershell/module/az.cosmosdb
# --------------------------------------------------
# Purpose
# Create Cosmos Cassandra API account with automatic failover,
# a keyspace, and a table with defined schema with autoscale throughput
# --------------------------------------------------
Function New-RandomString{Param ([Int]$Length = 10) return $(-join ((97..122) + (48..57) | Get-Random -Count $Length | ForEach-Object {[char]$_}))}
# --------------------------------------------------
$uniqueId = New-RandomString -Length 7 # Random alphanumeric string for unique resource names
$apiKind = "Cassandra"
# --------------------------------------------------
# Variables - ***** SUBSTITUTE YOUR VALUES *****
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East Us" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West Us" -FailoverPriority 1 -IsZoneRedundant 0
$resourceGroupName = "mjbArmTest"#"myResourceGroup" # Resource Group must already exist
$accountName = "cosmos-$uniqueId" # Must be all lower case
$consistencyLevel = "Session"
$keyspaceName = "mykeyspace"
$tableName = "mytable"
$autoscaleMaxThroughput = 4000 #minimum = 4000
$partitionKeys = @("machine", "cpu", "mtime")
$clusterKeys = @(
@{ name = "loadid"; orderBy = "Asc" };
@{ name = "duration"; orderBy = "Desc" }
)
$columns = @(
@{ name = "loadid"; type = "uuid" };
@{ name = "machine"; type = "uuid" };
@{ name = "cpu"; type = "int" };
@{ name = "mtime"; type = "int" };
@{ name = "load"; type = "float" };
@{ name = "duration"; type = "float" }
)
# --------------------------------------------------
Write-Host "Creating account $accountName"
$account = New-AzCosmosDBAccount -ResourceGroupName $resourceGroupName `
-LocationObject $locations -Name $accountName -ApiKind $apiKind `
-DefaultConsistencyLevel $consistencyLevel `
-EnableAutomaticFailover:$true
Write-Host "Creating keyspace $keyspaceName"
$keyspace = New-AzCosmosDBCassandraKeyspace -ParentObject $account `
-Name $keyspaceName
# Table Schema
$psClusterKeys = @()
ForEach ($clusterKey in $clusterKeys) {
$psClusterKeys += New-AzCosmosDBCassandraClusterKey -Name $clusterKey.name -OrderBy $clusterKey.orderBy
}
$psColumns = @()
ForEach ($column in $columns) {
$psColumns += New-AzCosmosDBCassandraColumn -Name $column.name -Type $column.type
}
$schema = New-AzCosmosDBCassandraSchema `
-PartitionKey $partitionKeys `
-ClusterKey $psClusterKeys `
-Column $psColumns
Write-Host "Creating table $tableName"
$table = New-AzCosmosDBCassandraTable -ParentObject $keyspace `
-Name $tableName -Schema $schema -AutoscaleMaxThroughput $autoscaleMaxThroughput
Pulire la distribuzione
Dopo l'esecuzione dello script di esempio, è possibile usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse ad esso associate.
Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"
Spiegazione dello script
Questo script usa i comandi seguenti. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.
Comando | Note |
---|---|
Azure Cosmos DB | |
New-AzCosmosDBAccount | Crea un account Azure Cosmos DB. |
New-AzCosmosDBCassandraKeyspace | Crea un keyspace per Azure Cosmos DB for Apache Cassandra. |
New-AzCosmosDBCassandraClusterKey | Crea una chiave di cluster per Azure Cosmos DB for Apache Cassandra. |
New-AzCosmosDBCassandraColumn | Crea una colonna per Azure Cosmos DB for Apache Cassandra. |
New-AzCosmosDBCassandraSchema | Crea uno schema per Azure Cosmos DB for Apache Cassandra. |
New-AzCosmosDBCassandraTable | Crea una tabella per Azure Cosmos DB for Apache Cassandra. |
Gruppi di risorse di Azure | |
Remove-AzResourceGroup | Consente di eliminare un gruppo di risorse incluse tutte le risorse annidate. |
Passaggi successivi
Per altre informazioni su Azure PowerShell, vedere la documentazione di Azure PowerShell