小编vla*_*mir的帖子

DBeaver - Clickhouse - SQL 错误 [159] .. 读取超时

在 1,3b 行数据库上运行查询时,我收到“读取超时”消息。

这不是将推文中的主题标签分组在一起的特定高级查询:

SELECT case when match(hashtag, 
            '[Cc]orona.*|COVID.*|[Cc]ovid.*|[Cc]oVID_19.*|[Cc]orvid19.*|COVD19.*|CORONA.*|KILLTHEVI.*|SARSCoV.*|ChineseVi.*|WuhanVir.*|ChinaVir.*|[Vv]irus.*|
            [Qq]uarantine|[Pp]andemic.*|[Cc]linical[Tt]rial.*|FlattenTheCurve.*|SocialDistancing.*|StayHome.*|StayTheFHome.*|StayAtHome.*|stopthespread.*|
            SafeHands.*|WashYourHands.*|SelfIsolation.*')                           then 'COVID19' 
            when match(hashtag, '[Jj]anta[Cc]urfew.*|[Jj]anata[Cc]urfew.*')         then 'JantaCurfew'
            when match(hashtag, 'Bhula.*')                                          then 'Bhula'
            when match(hashtag, '[Ss]t[Pp]atrick.*|HappyStPatrick')                 then 'StPatricks day'
            when match(hashtag, '[Cc]hina.*')                                       then 'China'
            when match(hashtag, '[Ii]taly.*')                                       then 'Italy'
            when match(hashtag, '[Ii]ran.*')                                        then 'Iran'
            when match(hashtag, '[Ii]ndia.*')                                       then 'India'
            when match(hashtag, '[Hh]appy[Mm]others[Dd]ay.*|[Mm]others[Dd]ay.*')    then 'MothersDay'
            else hashtag END
            as Hashtag,
  SUM(CASE WHEN created >= '2020-05-14 00:00:00' AND created <= '2020-03-14 23:59:59' THEN 1 END) "May 14th'20",
  SUM(CASE WHEN created >= '2020-05-13 …
Run Code Online (Sandbox Code Playgroud)

dbeaver clickhouse

9
推荐指数
1
解决办法
3万
查看次数

为什么CsvHelper无法从MemoryStream读取?

我正在尝试将上传的csv文件转换为对象,以便可以保存在db中。在控制器中,我正在使用CsvHeler

但是看起来这只有在我首先保存文件并从中读取时才有效。CsvHelper无法直接从内存流中处理文件内容。在第一个GetRecords下面的代码中返回空

    [HttpPost]
    [Route(ApiRoutes.EodVariationMarginPlugs)]
    public async Task<IActionResult> UploadPlugAsync(IFormFile filePayload)
    {

        if (filePayload.Length > 0)
        {

            using (var stream = new MemoryStream())
            {
                filePayload.CopyTo(stream);
                using (var reader = new StreamReader(stream))
                using (var csv = new CsvReader(reader))
                {
                    csv.Configuration.RegisterClassMap<EodVariationMarginPlugMap>();
                    csv.Configuration.MissingFieldFound = null;
                    var records = csv.GetRecords<EodVariationMarginPlug>().ToList(); // record count is 0
                    foreach (var p in records)
                    {
                        p.CreatedAt = DateTimeOffset.Now;
                        p.CreatedBy = HttpContext.User.Identity.Name;
                    }
                    await _repository.InsertPlugsAsync(records);
                }
            }

        var fileName = ContentDispositionHeaderValue
            .Parse(filePayload.ContentDisposition)
            .FileName.ToString().Trim('"');
            var path = Path.Combine(Path.GetTempPath(), fileName);
            using (var fileStream …
Run Code Online (Sandbox Code Playgroud)

csvhelper asp.net-core

8
推荐指数
1
解决办法
1918
查看次数

如何避免clickhouse表中的重复?

我创建了表并尝试多次插入值以检查重复项。我可以看到重复项正在插入。有没有办法避免clickhouse表中的重复?

CREATE TABLE sample.tmp_api_logs ( id UInt32,  EventDate Date) 
ENGINE = MergeTree(EventDate, id, (EventDate,id), 8192);

insert into sample.tmp_api_logs values(1,'2018-11-23'),(2,'2018-11-23');
insert into sample.tmp_api_logs values(1,'2018-11-23'),(2,'2018-11-23');

select * from sample.tmp_api_logs;
/*
??id????EventDate??
?  1 ? 2018-11-23 ?
?  2 ? 2018-11-23 ?
???????????????????
??id????EventDate??
?  1 ? 2018-11-23 ?
?  2 ? 2018-11-23 ?
???????????????????
*/
Run Code Online (Sandbox Code Playgroud)

clickhouse

6
推荐指数
2
解决办法
8104
查看次数

Clickhouse:DB::Exception:超出内存限制(用于查询)

当 Clickhouse 查询内存不足时,我该怎么办?你不能只是调高内存,对吧?内存也有限制,硬盘怎么配置?

SELECT
    UserID,
    Title
FROM 
(
    SELECT
        L.UserID,
        L.Title
    FROM tutorial.hits_v1 AS L
    INNER JOIN tutorial.hits_v2 AS R ON L.UserID = R.UserID
) AS T
ORDER BY UserID ASC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
#user.d/abc.xml


<?xml version="1.0"?>
<yandex>
    <!-- Profiles of settings. -->
    <profiles>
        <!-- Default settings. -->
        <default>
            <!-- Maximum memory usage for processing single query, in bytes. -->
            <max_memory_usage>350000000</max_memory_usage>
            <max_memory_usage_for_user>350000000</max_memory_usage_for_user>
            <max_bytes_before_external_group_by>100000000</max_bytes_before_external_group_by>
            <max_bytes_before_external_sort>100000000</max_bytes_before_external_sort>
        </default>
    </profiles>
</yandex>

Run Code Online (Sandbox Code Playgroud)

clickhouse

6
推荐指数
2
解决办法
2万
查看次数

通过http python发送图像

我需要在不使用 HTTP 库的情况下构建一个 http 服务器。

\n\n

我的服务器正在运行,并且正在加载 html 页面,但我的<img src="..."/>标签未加载,我收到呼叫,但无法在页面中预设 png/JPEG。

\n\n

httpServer.py

\n\n
# Define socket host and port\nSERVER_HOST = \'0.0.0.0\'\nSERVER_PORT = 8000\n\n# Create socket\nserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\nserver_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\nserver_socket.bind((SERVER_HOST, SERVER_PORT))\nserver_socket.listen(1)\nprint(\'Listening on port %s ...\' % SERVER_PORT)\n\nwhile True:\n    # Wait for client connections\n    client_connection, client_address = server_socket.accept()\n\n    # Handle client request\n    request = client_connection.recv(1024).decode()\n    content = handle_request(request)\n\n    # Send HTTP response\n    if content:\n        response = \'HTTP/1.1 200 OK\\n\\n\'\n        response += content\n    else:\n        response = \'HTTP/1.1 404 NOT …
Run Code Online (Sandbox Code Playgroud)

python sockets tcp get http

5
推荐指数
1
解决办法
2万
查看次数

ASP.Net Core 2.2 Kubernetes Ingress:未找到自定义路径的静态内容

我有以下 ingress.yml:

apiVersion: extensions/v1beta1
kind: Ingress 
metadata:
  name: ingress 
  namespace: default 
  annotations:
    kubernetes.io/ingress.class: "nginx" 
    nginx.ingress.kubernetes.io/ssl-redirect: "false" 
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  labels: 
    app: ingress 
spec:
  rules:  
    - host: 
      http:   
        paths:
          - path: /apistarter(/|$)(.*)
            backend:
              serviceName: svc-aspnetapistarter
              servicePort: 5000
          - path: //apistarter(/|$)(.*)
            backend:
              serviceName: svc-aspnetapistarter
              servicePort: 5000
Run Code Online (Sandbox Code Playgroud)

部署我的 ASP.Net Core 2.2 API 应用程序并导航到 后http://localhost/apistarter/,浏览器调试器控制台显示加载静态内容和 Javascript 的错误。此外,导航到http://localhost/apistarter/swagger/index.html结果

Fetch error Not Found /swagger/v2/swagger.json
Run Code Online (Sandbox Code Playgroud)

我对使用不同路径前缀的多个微服务使用相同的入口。它使用 microk8s 在我的本地 kubernetes 集群上运行。还没有在任何云提供商上。我已经查看了如何配置 ASP.NET Core 多微服务应用程序和 Azure AKS 入口路由,以便它不会破坏 wwwroot 文件夹https://docs.microsoft.com/en-us/aspnet/core 中的资源/host-and-deploy/proxy-load-balancer?view=aspnetcore-2.1 …

c# kubernetes asp.net-core kubernetes-ingress nginx-ingress

4
推荐指数
1
解决办法
2739
查看次数

在 ClickHouse 中按计数过滤 WHERE

我正在尝试迁移 ClickHouse 中的一个 Postgres 表。这是我在 ClickHouse 想到的:

CREATE TABLE loads(
    country_id UInt16,
    partner_id UInt32,
    is_unique UInt8,
    ip String,
    created_at DateTime
) ENGINE=MergeTree PARTITION BY toYYYYMM(created_at) ORDER BY (created_at);
Run Code Online (Sandbox Code Playgroud)

is_unique 这里是一个带有 0 或 1 的布尔值。我想知道聚合的计数:country_id、partner_id 和created_at,但我也想知道这些负载中有多少是唯一负载。在 Postgres 中,它看起来像:

SELECT
    count(*) AS loads,
    count(*) FILTER (WHERE is_unique) AS uniq,
    country_id,
    partner_id,
    created_at::date AS ts
FROM loads
GROUP BY ts, country_id, partner_id
Run Code Online (Sandbox Code Playgroud)

ClickHouse 可以吗?还是我应该重新考虑如何聚合数据?我在手册中没有找到任何线索,除了count可以得到expr而不是星号,但count(is_unique = 1)不起作用,只是返回与 count(*) 相同的数量。

clickhouse

4
推荐指数
1
解决办法
3915
查看次数

如何从clickhouse中的json中提取json?

我的基地有一个 json:

{"a":1,"b":2,"c":[{"d":3,"e":"str_1"}, {"d":4,"e":"str_2"}]}
Run Code Online (Sandbox Code Playgroud)

我需要获取每个键的所有唯一值,但在提取键“d”和键“e”的值时遇到一些问题。

使用:

SELECT
   DISTINCT JSONExtractRaw(column, 'c')
FROM t1
Run Code Online (Sandbox Code Playgroud)

我得到:

[{"d":3,"e":"str_1"}, 
{"d":4,"e":"str_2"}]
Run Code Online (Sandbox Code Playgroud)

但是,如果我再次对键“d”和键“e”使用 JsonExtract 品种,它不会返回任何内容。如何解决这个问题呢?

clickhouse

4
推荐指数
1
解决办法
2万
查看次数

Clickhouse - “单个 INSERT 块的分区过多”

在将复制的 MySQL 数据库重新加载到 Clickhouse 期间,使用“clickhouse-mysql”我遇到了“单个 INSERT 块的分区过多”,并且似乎无法进行。

到目前为止,我尝试过的一些事情:

  1. 将“max_partitions_per_insert_block”设置为零,看看它是否能够通过。
  2. 使用 --mempool-max-rows 为 5000、10.000 和 20.000,以便跳过 100.000 默认加载
  3. 创建表时使用 PARTITION BY toYYYYMMDD(created)

Clickhouse 表的创建方式与自动创建(--create-table)的方式非常相似,但它确实错过了一些 NULLABLE 类型:

CREATE TABLE DB.DB__main (
`id` Int64,
 `user_id` Int64,
 `screenname` String,
 `created` DateTime,
 `tweet_id` Int64,
 `tweet` String,
 `retweet_count` Nullable(Int32),
 `mediastatus` Nullable(String),
 `country` Nullable(String),
 `countrycode` Nullable(String),
 `city` Nullable(String),
 `latitude0` Nullable(String),
 `longitude0` Nullable(String),
 `latitude1` Nullable(String),
 `longitude1` Nullable(String),
 `latitude2` Nullable(String),
 `longitude2` Nullable(String),
 `latitude3` Nullable(String),
 `longitude3` Nullable(String),
 `datetime` DateTime,
 `datetime_update` Nullable(DateTime),
 `status` Nullable(String),
 `div0` Nullable(String),
 `div1` Nullable(String),
 `div2` Nullable(Int64),
 `datasource` …
Run Code Online (Sandbox Code Playgroud)

insert clickhouse

4
推荐指数
1
解决办法
7955
查看次数

如何理解ClickHouse的part和partition?

我看到 clickhouse 为每个分区键创建了多个目录。

文档说目录名称格式是:分区名称最小数据块最大数据块数块级别。例如,目录名称是201901_1_11_1.

我认为这意味着该目录是属于分区201901的一部分,具有从111的块并且在级别1。所以我们可以有另一个部分,其目录类似于201901_12_21_1,这意味着这部分属于分区201901,具有从1221的块并且在级别1

所以我认为分区被分成不同的部分。我对吗?

clickhouse

3
推荐指数
1
解决办法
3606
查看次数