首页 > 解决方案 > Yugabtye 行级地理分区

问题描述

我写了一个行级地理分区 POC,并设置了以下链接。发现所有节点表的数据都是一模一样的,这里输入代码我想做横向分割怎么实现,你怎么du呢,谢谢!

https://docs.yugabyte.com/latest/explore/multi-region-deployments/row-level-geo-partitioning/

/usr/local/yugabyte-2.9.0.0/bin/yugabyted start                            \
  --base_dir=/home/yugabyte/yugabyte-data      \
  --listen=192.168.106.34                               \
  --master_flags "placement_cloud=aws,placement_region=us-east-1,placement_zone=us-east-1a" \
  --tserver_flags "placement_cloud=aws,placement_region=us-east-1,placement_zone=us-east-1a" &

/usr/local/yugabyte-2.9.0.0/bin/yugabyted start                            \
  --base_dir=/home/yugabyte/yugabyte-data      \
  --listen=192.168.106.23                               \
  --join=192.168.106.34                                 \
  --tserver_flags "placement_cloud=aws,placement_region=us-east-1,placement_zone=us-east-1a"

CREATE TABLE transactions (
    user_id   INTEGER NOT NULL,
    account_id INTEGER NOT NULL,
    geo_partition VARCHAR,
    account_type VARCHAR NOT NULL,
    amount NUMERIC NOT NULL,
    txn_type VARCHAR NOT NULL, 
    created_at TIMESTAMP DEFAULT NOW()
) PARTITION BY LIST (geo_partition);

 
CREATE TABLESPACE us_central_1_tablespace WITH (
  replica_placement='{"num_replicas": 1, "placement_blocks":
  [{"cloud":"aws","region":"us-east-1","zone":"us-east-1a","min_num_replicas":1}]}'
);

CREATE TABLESPACE ap_south_1_tablespace WITH (
  replica_placement='{"num_replicas": 1, "placement_blocks":
  [{"cloud":"cloud1","region":"datacenter1","zone":"rack1","min_num_replicas":1}]}'
);

CREATE TABLE transactions_us 
    PARTITION OF transactions 
      (user_id, account_id, geo_partition, account_type, 
      amount, txn_type, created_at,
      PRIMARY KEY (user_id HASH, account_id, geo_partition))
    FOR VALUES IN ('US') TABLESPACE us_central_1_tablespace;


CREATE TABLE transactions_default 
    PARTITION OF transactions 
      (user_id, account_id, geo_partition, account_type, 
      amount, txn_type, created_at,
      PRIMARY KEY (user_id HASH, account_id, geo_partition))
    FOR VALUES IN ('India') TABLESPACE ap_south_1_tablespace;

INSERT INTO transactions 
    VALUES (200, 20001, 'India', 'savings', 1000, 'credit');
INSERT INTO transactions 
    VALUES (300, 30001, 'US', 'checking', 105.25, 'debit');

select * from transactions;
select * from transactions_us;
select * from transactions_default;

标签: yugabyte-db

解决方案


推荐阅读