【发布时间】:2022-01-13 13:31:28
【问题描述】:
我在下面附上了一张图片,说明了我的问题。 我也看过这个: Removing or replacing ascii null character <0x00> from column in Snowflake 和 Remove non-ASCII characters from a string in Snowflake 使用我的代码发布并实施或尝试相同的方法。 现在,开始我的代码。 我知道问题是这个带有雪花的“内部”VW_QUERY_HISTORY 视图。我认为这是日期问题,但不是。我什至在日期上做 UTC,以防雪花在其智慧中使用位置时间。 所以任何建议都会很棒;很明显,我已经把它包裹和修剪得够多了。
select RTRIM(replace(replace(a.Full_Table_Name, char(32), ''), char(13), ''),' ') as Full_Table_Name
,RTRIM(replace(replace(TRIM(replace(UPPER(Full_Table_Name),'TEST_DATABASE.DUMMY_SCHEMA.','' )), char(32), ''), char(13), ''),' ') as Short_Table_Name_1
,log.TABLE_NAME as AUDIT_LOGGIN_TABLE_NAME
from (
select replace (replace(UPPER(substring(QUERY_TEXT,11,charindex('from',QUERY_TEXT)-12)) , char(32), ''), char(13), '') as Full_Table_Name
,to_date(convert_timezone('UTC',START_TIME) ) as ETL_DATE
from "TEST_DATABASE"."AUDIT_LOGGING"."VW_QUERY_HISTORY" as vw
where substring(QUERY_TEXT,11,charindex('from',QUERY_TEXT)-12) like '%DUMMY_SCHEMA%'
and QUERY_TYPE = 'COPY'
and UPPER(substring(QUERY_TEXT,11,charindex('from',QUERY_TEXT)-12)) like '%TEST_DATABASE.DUMMY_SCHEMA%'
and to_date(START_TIME) >= dateadd(day,-1,current_date() )
) as a
LEFT JOIN TEST_DATABASE.AUDIT_LOGGING.DUMMY_SCHEMA_SOURCE_TABLE_COUNTS as log on replace (replace(UPPER(replace(UPPER(log.TABLE_NAME),'SCPOMGR.','')), char(13), ''), char(32), '') = TRIM(regexp_replace(replace (replace(TRIM(replace(UPPER(Full_Table_Name),'TEST_DATABASE.DUMMY_SCHEMA.','' )), char(13), ''), char(32), ''), char(32), ''),char(32))
and log.ETL_Date = 20211207
// and a.ETL_DATE = convert_timezone('UTC', to_date(concat(substring(log.ETL_DATE,0,4),'-',substring(log.ETL_DATE,5,2),'-',substring(log.ETL_DATE,7,2) ) ) )
【问题讨论】:
-
我还应该指出。 . . LEFT JOIN TEST_DATABASE.AUDIT_LOGGING.DUMMY_SCHEMA_SOURCE_TABLE_COUNTS 是我自己围绕这个特定数据集市的表,我在其中记录当天负载的增量的聚合计数。这是上图中的第 7 行。
-
我没有关注您的问题/问题。我看到了空白和诸如此类的东西,但是我不明白您要在这里解决什么。您的 sql 很厚,并且试图将其变薄以便我可以复制是一件苦差事。您是否有一个最小的、可验证且可重现的示例,或者您能否更好地解释您试图从 query_history 日志中的
COPY语句中挑选出什么以及您试图将其加入到什么(可能是一些示例数据和期望的结果会有帮助吗?)。 -
另外,我不明白你的sql语句和你的截图之间的关系。您的屏幕截图中的列比您在 SQL 中选择的列多得多。
-
嗨@JNevill,主要是我试图将名为 VW_QUERY_HISTORY 的“内部”雪花视图加入到我的 table_name 和 date 列上的表中。它在 17 个实例中的 16 个上运行良好,除了这 1 个情况,即使在删除“空格”之后,我似乎也有尾随空格。就像我在屏幕截图中指出的那样。因此,我没有从我的表中获取表名或记录数(作为左连接)。
-
您能否将您从
COPY语句中提取的表原样复制/粘贴到问题中,包括您获得的空格?
标签: snowflake-cloud-data-platform snowflake-schema