Note: I do not have direct control over the DDL as it is managed directly by Rudderstack
This is the table schema:
CREATE TABLE `removed.rudderstack_main.airplay_started`
(
original_timestamp TIMESTAMP,
context_screen STRING,
timestamp TIMESTAMP,
context_release_version_major INT64,
context_app_language_list_separator STRING,
context_app_language_culture_name STRING,
id STRING,
context_device_info STRING,
context_library_version STRING,
context_channel STRING,
context_os STRING,
context_release_version_minor INT64,
uuid_ts TIMESTAMP,
anonymous_id STRING,
context_locale_culture_name STRING,
context_was_online BOOL,
context_library_name STRING,
context_release_version_revision INT64,
sent_at TIMESTAMP,
context_locale_list_separator STRING,
event STRING,
context_locale_is_right_to_left BOOL,
context_app_language_is_right_to_left BOOL,
context_timezone STRING,
received_at TIMESTAMP,
event_text STRING,
context_preson_id STRING,
context_request_ip STRING,
context_release_version_build INT64,
loaded_at TIMESTAMP,
context_ip STRING,
context_device_info_version_minor INT64,
context_screen_density INT64,
context_device_info_model STRING,
context_app_version STRING,
context_device_info_idiom STRING,
context_screen_orientation STRING,
context_device_info_manufacturer STRING,
context_device_info_platform STRING,
context_screen_rotation STRING,
context_screen_width INT64,
context_screen_height INT64,
context_device_info_version_string STRING,
context_device_info_version_build INT64,
context_device_info_version_major INT64,
context_device_info_device_type STRING,
context_screen_refresh_rate INT64,
context_device_info_version_revision INT64,
context_destination_type STRING,
context_source_id STRING,
context_source_type STRING,
context_destination_id STRING,
user_id STRING
)
PARTITION BY TIMESTAMP_TRUNC(_PARTITIONTIME, DAY);
And the view
SELECT * EXCEPT (__row_number) FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY loaded_at DESC ) AS __row_number FROM `removed.rudderstack_main.airplay_started` WHERE _PARTITIONTIME BETWEEN TIMESTAMP_TRUNC(TIMESTAMP_MICROS(UNIX_MICROS(CURRENT_TIMESTAMP()) - 60 * 60 * 60 * 24 * 1000000), DAY, 'UTC')
AND TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), DAY, 'UTC')
)
WHERE __row_number = 1
It appears that there the columns that are missing are in the second half of the columns. This is consistent for several table/view combinations that follow the same pattern of DDL as this one. The number of columns varies, but the cutoff always seems to be at about 50 - 60% mark.
Below is a visual diff of the columns copied from Show original schema tab