Azure Cosmos DB - API for Cassandra용 키스페이스 및 테이블 만들기
적용 대상: Cassandra
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
이 샘플에는 Azure PowerShell Az 5.4.0 이상이 필요합니다. Get-Module -ListAvailable Az
를 실행하여 설치된 버전을 확인합니다.
설치해야 하는 경우 Azure PowerShell 모듈 설치를 참조하세요.
Connect-AzAccount를 실행하여 Azure에 로그인합니다.
샘플 스크립트
# 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, dedicated throughput, and
# conflict resolution policy with last writer wins and custom resolver path.
# --------------------------------------------------
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 = "myResourceGroup" # Resource Group must already exist
$accountName = "cosmos-$uniqueId" # Must be all lower case
$consistencyLevel = "BoundedStaleness"
$maxStalenessInterval = 300
$maxStalenessPrefix = 100000
$tags = @{Tag1 = "MyTag1"; Tag2 = "MyTag2"; Tag3 = "MyTag3"}
$keyspaceName = "mykeyspace"
$tableName = "mytable"
$tableRUs = 400
$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 -Tag $tags `
-DefaultConsistencyLevel $consistencyLevel `
-MaxStalenessIntervalInSeconds $maxStalenessInterval `
-MaxStalenessPrefix $maxStalenessPrefix `
-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 -Throughput $tableRUs
배포 정리
스크립트 샘플을 실행한 후에 다음 명령을 사용하여 리소스 그룹 및 관련된 모든 리소스를 제거할 수 있습니다.
Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"
스크립트 설명
이 스크립트는 다음 명령을 사용합니다. 테이블에 있는 각 명령은 명령에 해당하는 문서에 연결됩니다.
명령 | 주의 |
---|---|
Azure Cosmos DB | |
New-AzCosmosDBAccount | Azure Cosmos DB 계정을 만듭니다. |
New-AzCosmosDBCassandraKeyspace | Azure Cosmos DB for Apache Cassandra 키스페이스를 만듭니다. |
New-AzCosmosDBCassandraClusterKey | Azure Cosmos DB for Apache Cassandra 클러스터 키를 만듭니다. |
New-AzCosmosDBCassandraColumn | Azure Cosmos DB for Apache Cassandra 열을 만듭니다. |
New-AzCosmosDBCassandraSchema | Azure Cosmos DB for Apache Cassandra 스키마를 만듭니다. |
New-AzCosmosDBCassandraTable | Azure Cosmos DB for Apache Cassandra 테이블을 만듭니다. |
Azure 리소스 그룹 | |
Remove-AzResourceGroup | 모든 중첩 리소스를 포함한 리소스 그룹을 삭제합니다. |
다음 단계
Azure PowerShell에 대한 자세한 내용은 Azure PowerShell 설명서를 참조하세요.