小编Gec*_*cKo的帖子

优化通过Python驱动向Cassandra数据库插入数据

我尝试使用 Python 驱动程序中的 BATCH 将 150.000 个生成的数据插入到 Cassandra 中。大约需要30 秒。我应该如何优化它并更快地插入数据?这是我的代码:

from cassandra.cluster import Cluster
from faker import Faker
import time
fake = Faker()

cluster = Cluster(['127.0.0.1'], port=9042)
session = cluster.connect()
session.default_timeout = 150
num = 0
def create_data():
    global num
    BATCH_SIZE = 1500
    BATCH_STMT = 'BEGIN BATCH'

    for i in range(BATCH_SIZE):
        BATCH_STMT +=  f" INSERT INTO tt(id, title) VALUES ('{num}', '{fake.name()}')";
        num += 1

    BATCH_STMT += ' APPLY BATCH;'
    prep_batch = session.prepare(BATCH_STMT)
    return prep_batch

tt = []
session.execute('USE …
Run Code Online (Sandbox Code Playgroud)

cassandra cassandra-python-driver

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

ClickHouse JSON 解析异常:无法解析输入:之前需要 ','

我正在尝试将 JSON 数据从 Kafka 添加到 ClickHouse。这是简化的 JSON:

{
  ...
   "sendAddress":{
      "sendCommChannelTypeId":4,
      "sendCommChannelTypeCode":"SMS",
      "sendAddress":"789345345945"},
   ...
}
Run Code Online (Sandbox Code Playgroud)

以下是在 ClickHouse 中创建表的步骤,使用 Kafka Engine 创建另一个表并创建 MATERIALIZED VIEW 来连接这两个表,并将 CH 与 Kafka 连接。

创建第一个表

CREATE TABLE tab 
(
    ...

    sendAddress Tuple (sendCommChannelTypeId Int32, sendCommChannelTypeCode String, sendAddress String),
     ...

)Engine = MergeTree()
PARTITION BY applicationId
ORDER BY (applicationId);
Run Code Online (Sandbox Code Playgroud)

使用 Kafka 引擎设置创建第二个表:

CREATE TABLE tab_kfk
(
    ...
    sendAddress Tuple (sendCommChannelTypeId Int32, sendCommChannelTypeCode String, sendAddress String),
    ...
)ENGINE = Kafka
SETTINGS kafka_broker_list = 'localhost:9092',
       kafka_topic_list = 'topk2',
       kafka_group_name …
Run Code Online (Sandbox Code Playgroud)

apache-kafka clickhouse

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

Minio InvalidEndpointError:端点无效

我有一个主机 - 192.168.200.xx1,Minio 在 Docker 中运行。我用这个命令启动了minio - docker run --name minio_server --hostname minio -d -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001" 。因此,我有另一个带有 NodeJS 代码的主机 192.168.200.xx2,我尝试从该主机向 minio 发送数据。这是我的 NodeJS 代码:

async function uploadImage(req, res) {
    const path = await image_functions_1.ImageLoad.urlCreate(userId, surveyId) + "/" + req.file.originalname;
        return res.status(200).json({ success: false, message: "Failed to upload!" });
    let minioClient = new Minio.Client({
        endPoint: process.env.MINIO_END_POINT,
        port: 9000,
        useSSL: false,
        accessKey: process.env.MINIO_ACCESS_KEY,
        secketKey: process.env.MINIO_SECRET_KEY
    });
    minioClient.putObject(process.env.MINIO_BUCKET, path, req.file.buffer, function (err, etag) {
        if (err) …
Run Code Online (Sandbox Code Playgroud)

node.js minio

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