gpt4 book ai didi

text-files - 读取 txt 文件 JSON 数据以在 Cloud Pub Sub 中发布消息

转载 作者:行者123 更新时间:2023-12-02 16:58:04 28 4
gpt4 key购买 nike

我正在尝试将数据发布到 Cloud Pub Sub。数据采用 JSON 格式,并保存在我的本地文件夹中。我没有使用云存储并试图通过云功能直接读取 pubsub 消息。使用手动传递消息测试流程,数据也被插入到 Bigquery 表中。我唯一遇到困难的地方是,我如何将 .txt 文件 JSON 数据集传递给 Cloud PubSub,

示例数据

{"ID":6,"NAME":"Komal","AGE":22,"ADDRESS":"Assam","SALARY":20000}

谁能给我一个提示!

我可以看到各种使用云存储的选项,这里我从数据库表中读取更改的数据,将这些记录插入到 1 个虚拟表中,并将该表中的数据转换为 JSON 格式并写入 。 txt 文件。从这里开始,如果我可以将数据发布到 pubsub,整个流程将完成

如果我像下面这样手动传递,数据将被插入

gcloud pubsub topics publish pubsubtopic1 --message

{"ID":6,"NAME":"Komal","AGE":22,"ADDRESS":"Assam","SALARY":20000}

4 月 10 日编辑

我如何使用批处理文件将数据从 .txt 文件插入到 pubsub。但是当我从 PL SQL 过程 (DBMS_SCHEDULER) 调用批处理文件时,它抛出错误“'gcloud' 未被识别为内部或外部命令”。但是当我从命令行调用批处理文件时,数据也被 psuhed 到 pub sub 和 Bigquery 表。我正在使用的 PFB 脚本和 PL SQL 代码。任何帮助将不胜感激

用于调用脚本的批处理脚本和 PL SQL 代码

@echo off
set file=C:\temp\TEST_EXTRACT.txt
echo %file% >> C:\temp\T1.txt
for /f "tokens=*" %%A in (%file%) do (ECHO %%A >> C:\temp\T2.txt
ECHO cmd.exe /K cd C:\Users\test\AppData\Local\Google\Cloud SDK && gcloud pubsub topics publish pubsubtopic1 --message %%A > C:\temp\T3.txt)

Below mentioned the PL SQL code which is used for calling the batch file

BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(
job_name => 'LOOP_JOB',
job_type => 'EXECUTABLE',
job_action => 'C:\WINDOWS\system32\cmd.exe',
--repeat_interval => 'FREQ=WEEKLY;BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=18;BYMINUTE=0;BYSECOND=0',
--start_date => SYSTIMESTAMP at time zone 'EUROPE/LONDON',
job_class => 'DEFAULT_JOB_CLASS',
comments => 'Job to test call out to batch script on Windows',
auto_drop => FALSE,
number_of_arguments => 3,
enabled => FALSE);

SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
job_name => 'LOOP_JOB', argument_position => 1, argument_value => '/q');
SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
job_name => 'LOOP_JOB', argument_position => 2, argument_value => '/c');
SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(
job_name => 'LOOP_JOB', argument_position => 3, argument_value => 'C:\temp\loop.bat');
SYS.DBMS_SCHEDULER.ENABLE( 'LOOP_JOB' );
END;
/

最佳答案

如果您想轻松发布单个文件的内容:

gcloud pubsub topics publish ${PUBSUB_TOPIC_NAME} --message "$(cat ${FILE_NAME} | jq -c)"

关于text-files - 读取 txt 文件 JSON 数据以在 Cloud Pub Sub 中发布消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55513746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com