这是一直困扰着我的事情。将 FROM 子句放在 SELECT 之前不是更有意义吗?每当我写sql,尤其是连接时,我总是先弄清楚FROM子句,然后再写SELECT。
另外,将 FROM 放在首位可以在编辑器中实现更好的智能感知。
有谁知道将 SELECT 放在首位的原因是什么?只有我一个人为此烦恼吗?
我有一个长时间运行的进程,我想向其中添加 REST api。通过 API,我希望能够检查长时间运行的进程中变量的值。
我使用最少的 API 整理了一个概念验证:
public class Program
{
public static int val = 0;
public static object locker = new object();
public static void Main(string[] args)
{
Task.Run(() =>
{
while (true)
{
lock (locker)
{
val++;
}
Thread.Sleep(100);
}
});
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () =>
{
lock (locker)
return val;
});
app.Run();
}
}
Run Code Online (Sandbox Code Playgroud)
我的想法是让我的长时间运行进程的代码在 Task.Run 中运行。我以正确的方式处理这件事吗?我想做的事情是否有任何潜在的陷阱/陷阱?
c# task-parallel-library asp.net-web-api asp.net-core asp.net-core-minimal-hosting-model
我在 s3 中有每月的 zarr 文件,这些文件具有网格化的温度数据。我想为一个纬度/经度提取多个月的数据并创建该时间序列的数据框。一些伪代码:
datasets=[]
for file in files:
s3 = s3fs.S3FileSystem()
zarr_store = s3fs.S3Map(file, s3=s3)
zarr = xr.open_zarr(store=zarr_store, consolidated=True)
ds = zarr.sel(latitude=lat,
longitude=long,
time=slice(start_date.strftime("%Y-%m-%d"),
end_date.strftime("%Y-%m-%d"))
)
datasets.append(ds)
con = xr.concat(datasets, dim='time')
df = con.to_dataframe()
Run Code Online (Sandbox Code Playgroud)
所以这段代码可以工作,但速度非常慢。我希望使用 dask 来加快速度。我的计划是更改一次处理一个文件并返回一个数据帧的方法。然后我会调用 client.map() 并生成所有 dfs,然后在最后将它们连接在一起。所以我结束了类似的事情:
def load(file, lat: float, long: float, start_date, end_date):
s3 = s3fs.S3FileSystem()
s3_path = file['s3_bucket'] + '/' + file['zarr_s3_key']
zarr_store = s3fs.S3Map(s3_path, s3=s3)
zarr = xr.open_zarr(store=zarr_store, consolidated=True)
ds = zarr.sel(latitude=lat,
longitude=long,
time=slice(start_date.strftime("%Y-%m-%d"),
end_date.strftime("%Y-%m-%d"))
)
tmp = x.result().to_array().values
df_time = …Run Code Online (Sandbox Code Playgroud) asp.net-core ×1
asp.net-core-minimal-hosting-model ×1
c# ×1
dask ×1
python ×1
select ×1
sql ×1
zarr ×1