Stored procedures BigQuery存储过程中的记录类型
我想知道BigQuery中是否存在记录数据类型?我试图迭代表中存在的许多记录。想法是将记录提取到记录/游标中,然后逐个处理它们 在这里,我需要从ga_sessions_*表中删除GDPR记录。我们将要删除的用户存储在表gdpr_remove_记录中 因此,我喜欢调用一个存储过程,该存储过程为表中的每个记录调用。这是我的sudo代码Stored procedures BigQuery存储过程中的记录类型,stored-procedures,google-analytics,google-bigquery,stored-functions,Stored Procedures,Google Analytics,Google Bigquery,Stored Functions,我想知道BigQuery中是否存在记录数据类型?我试图迭代表中存在的许多记录。想法是将记录提取到记录/游标中,然后逐个处理它们 在这里,我需要从ga_sessions_*表中删除GDPR记录。我们将要删除的用户存储在表gdpr_remove_记录中 因此,我喜欢调用一个存储过程,该存储过程为表中的每个记录调用。这是我的sudo代码 DECLARE project_name STRING DEFAULT 'my_project'; DECLARE data_set_name
DECLARE project_name STRING DEFAULT 'my_project';
DECLARE data_set_name STRING DEFAULT 'my_data_set';
DECLARE table_name STRING DEFAULT 'ga_sessions_';
DECLARE v_sql STRING;
DECLARE v_error STRING;
DECLARE v_hashedEmail,v_date STRING;
--This one I like to declare as record
set (v_hashedEmail, v_date) = ARRAY(select AS STRUCT hashedEmail,format_date('%Y%m%d',date) from `eurostar-analytics.LOGGING.gdpr_remove_records`));
WHILE RECORD%ROWEXIST DO
call `my_project.my_data_set.gdpr_delete_user_data_prc`(project_name,data_set_name,table_name,v_date,v_hashedEmail,v_sql,v_error);
END WHILE
注意:这里存储过程gdpr_delete_user_data_prc删除hashedmail和ga_session_v_date的给定行
我不确定的是如何定义记录类型&在其中存储源表输出,并在WHILE循环中使用该记录类型
提前感谢您的指导。中的BigQuery记录与STRUCT相同
可以使用默认值来避免指定整个类型,如:
声明my_var DEFAULT ARRAYselect为STRUCT hashedEmail,格式为'Y%m%d',日期来自'eurostar analytics.LOGGING.gdpr_remove_records';
声明索引默认值为0;
而索引数组谢谢。我将如何使用我的_var进行迭代?更新了我的答案再次感谢。那正是我要找的。