我有两张这样的桌子
首先,为了数据完整性,我尝试将表course_id中的外键设置review为不为空约束。
所以我为这两个表创建带注释的类,如下所示:
@Data
@Entity
@Table(name = "course")
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "course_id")
private int id;
@Column(name = "name")
private String name;
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name = "course_id")
private List<Review> reviews;
public Course(){}
public Course(String name){
this.name = name;
}
public void addReview(Review review){
if(this.reviews == null){
this.reviews = new ArrayList<>();
}
this.reviews.add(review);
}
}
@Data
@Entity
@Table(name = "review")
public class Review {
@Id
@GeneratedValue(strategy = …Run Code Online (Sandbox Code Playgroud) 我目前正在 GCP Dataflow 中构建 PoC Apache Beam 管道。在本例中,我想使用来自 PubSub 的主输入和来自 BigQuery 的侧输入创建流式传输管道,并将处理后的数据存储回 BigQuery。
侧管线代码
side_pipeline = (
p
| "periodic" >> PeriodicImpulse(fire_interval=3600, apply_windowing=True)
| "map to read request" >>
beam.Map(lambda x:beam.io.gcp.bigquery.ReadFromBigQueryRequest(table=side_table))
| beam.io.ReadAllFromBigQuery()
)
Run Code Online (Sandbox Code Playgroud)
侧面输入代码功能
def enrich_payload(payload, equipments):
id = payload["id"]
for equipment in equipments:
if id == equipment["id"]:
payload["type"] = equipment["type"]
payload["brand"] = equipment["brand"]
payload["year"] = equipment["year"]
break
return payload
Run Code Online (Sandbox Code Playgroud)
主管道代码
main_pipeline = (
p
| "read" >> beam.io.ReadFromPubSub(topic="projects/my-project/topics/topiq")
| "bytes to dict" >> beam.Map(lambda x: json.loads(x.decode("utf-8")))
| "transform" …Run Code Online (Sandbox Code Playgroud) 所以我有一个带有表的 PostgreSQL 数据库,可以跟踪数百万行设备的移动和燃料水平
并在time使用此命令在列上创建索引时使查询更快:
create index gpsapi__index__time on gpsapi (time);
Run Code Online (Sandbox Code Playgroud)
当我尝试像这样使用“EXPLAIN ANALYZE”运行简单命令时
EXPLAIN ANALYZE
SELECT *
FROM gpsapi g
WHERE g.time >= NOW() - '1 months'::interval;
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个问题吗?谢谢!