Google Spanner 全球分布式数据库

FreeGuideOnline 14阅读 2026-07-12

sql CREATE TABLE Users ( UserId STRING(36) NOT NULL, Name STRING(100), Age INT64, CreatedAt TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp=true), ) PRIMARY KEY(UserId);

5. 创建表后即可在控制台的“查询”标签中执行 SQL 语句。

### 使用 gcloud 命令行
```bash
# 创建实例
gcloud spanner instances create my-instance \
  --config=regional-us-central1 \
  --description="My first instance" \
  --nodes=1

# 创建数据库与模式
gcloud spanner databases create my-database \
  --instance=my-instance \
  --ddl='CREATE TABLE Users (UserId STRING(36) NOT NULL, Name STRING(100), Age INT64, CreatedAt TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp=true)) PRIMARY KEY(UserId)'

使用客户端库(Python 示例)

from google.cloud import spanner

# 初始化客户端
spanner_client = spanner.Client()
instance = spanner_client.instance("my-instance")
database = instance.database("my-database")

# 插入数据
def insert_user(transaction):
    transaction.insert(
        table="Users",
        columns=["UserId", "Name", "Age", "CreatedAt"],
        values=[
            ("user-001", "Alice", 30, spanner.COMMIT_TIMESTAMP),
        ]
    )

database.run_in_transaction(insert_user)

# 查询数据
with database.snapshot() as snapshot:
    results = snapshot.execute_sql("SELECT UserId, Name FROM Users WHERE Age > 25")
    for row in results:
        print(row)