长期从事半导体物理研究和教学工作, 是半导体领域顶级科学家。 半导体科学是一本不断取得令人惊奇进展的一门科学, 是人类社会现代化赖以实现的基础学科。本书从实验和计算两个角度详细地介绍了半导体材料的电子、振动、输运和光学性质, 强调的是对硅及其它四面体结合的半导体材料基本物理性质的理解。该书自1995年推出, 2001年即更新到第3版.,书中包含大量的数据、图表和习题, 它既是半导体物理方面难得的教科书, 同时也是从事半导体研究和器件开发的研究者必备的参考书。
文件:url80.ctfile.com/f/25127180-557242845-9d86a8
(访问密码:551685)
以下内容无关:
我们将使用三个 Postgres 表来表示这些数据。 要开始使用,您需要下载这些表的示例数据:
curl https://examples.citusdata.com/tutorial/companies.csv > companies.csv
curl https://examples.citusdata.com/tutorial/campaigns.csv > campaigns.csv
curl https://examples.citusdata.com/tutorial/ads.csv > ads.csv
如果您使用 Docker,则应使用 docker cp 命令将文件复制到 Docker 容器中。
docker cp companies.csv citus:.
docker cp campaigns.csv citus:.
docker cp ads.csv citus:.
创建表
首先,您可以先使用 psql 连接到 Citus coordinator。
如果您使用原生 Postgres,如我们的单节点 Citus 指南中安装的那样,coordinator 节点将在端口 9700 上运行。
psql -p 9700
如果您使用 Docker,您可以通过使用 docker exec 命令运行 psql 进行连接:
docker exec -it citus_master psql -U postgres
然后,您可以使用标准 PostgreSQL CREATE TABLE 命令创建表。
CREATE TABLE companies (
id bigint NOT NULL,
name text NOT NULL,
image_url text,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
CREATE TABLE campaigns (
id bigint NOT NULL,
company_id bigint NOT NULL,
name text NOT NULL,
cost_model text NOT NULL,
state text NOT NULL,
monthly_budget bigint,
blacklisted_site_urls text[],
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
CREATE TABLE ads (
id bigint NOT NULL,
company_id bigint NOT NULL,
campaign_id bigint NOT NULL,
name text NOT NULL,
image_url text,
target_url text,
impressions_count bigint DEFAULT 0,
clicks_count bigint DEFAULT 0,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
接下来,您可以像在 PostgreSQL 中一样在每个表上创建主键索引:
ALTER TABLE companies ADD PRIMARY KEY (id);
ALTER TABLE campaigns ADD PRIMARY KEY (id, company_id);
ALTER TABLE ads ADD PRIMARY KEY (id, company_id);
分布表和加载数据
我们现在将继续告诉 Citus 将这些表分布在集群中的不同节点上。为此,您可以运行 create_distributed_table 并指定要分片的表和要分片的列。在这种情况下,我们将对 company_id 上的所有表进行分片。
SELECT create_distributed_table(‘companies’, ‘id’);
SELECT create_distributed_table(‘campaigns’, ‘company_id’);
SELECT create_distributed_table(‘ads’, ‘company_id’);
对公司标识符上的所有表进行分片允许 Citus 将表放在一起,并允许跨集群使用主键、外键和复杂连接等功能。您可以在此处了解有关此方法的好处的更多信息。