blob: 06224b51bcb6e1b613a5e7c79ecc4d46492262ff [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
fixtures:
- name: BQ_TABLE_0
type: "apache_beam.yaml.integration_tests.temp_bigquery_table"
config:
project: "apache-beam-testing"
- name: TEMP_DIR_0
# Need distributed filesystem to be able to read and write from a container.
type: "apache_beam.yaml.integration_tests.gcs_temp_dir"
config:
bucket: "gs://temp-storage-for-end-to-end-tests/temp-it"
- name: BQ_TABLE_1
type: "apache_beam.yaml.integration_tests.temp_bigquery_table"
config:
project: "apache-beam-testing"
- name: TEMP_DIR_1
# Need distributed filesystem to be able to read and write from a container.
type: "apache_beam.yaml.integration_tests.gcs_temp_dir"
config:
bucket: "gs://temp-storage-for-end-to-end-tests/temp-it"
pipelines:
- pipeline:
type: chain
transforms:
- type: Create
config:
elements:
- {label: "11a", rank: 0}
- {label: "37a", rank: 1}
- {label: "389a", rank: 2}
- type: WriteToBigQuery
config:
table: "{BQ_TABLE_0}"
options:
project: "apache-beam-testing"
temp_location: "{TEMP_DIR_0}"
- pipeline:
type: chain
transforms:
- type: ReadFromBigQuery
config:
table: "{BQ_TABLE_0}"
- type: AssertEqual
config:
elements:
- {label: "11a", rank: 0}
- {label: "37a", rank: 1}
- {label: "389a", rank: 2}
options:
project: "apache-beam-testing"
temp_location: "{TEMP_DIR_0}"
- pipeline:
type: chain
transforms:
- type: ReadFromBigQuery
config:
table: "{BQ_TABLE_0}"
fields: ["label"]
row_restriction: "rank > 0"
- type: AssertEqual
config:
elements:
- {label: "37a"}
- {label: "389a"}
options:
project: "apache-beam-testing"
temp_location: "{TEMP_DIR_0}"
# ----------------------------------------------------------------------------
# New write to verify row restriction based on Timestamp and nullability
- pipeline:
type: chain
transforms:
- type: Create
config:
elements:
- {label: "4a", rank: 3, timestamp: "2024-07-14 00:00:00 UTC"}
- {label: "5a", rank: 4}
- {label: "6a", rank: 5, timestamp: "2024-07-14T02:00:00.123Z"}
- type: WriteToBigQuery
config:
table: "{BQ_TABLE_1}"
options:
project: "apache-beam-testing"
temp_location: "{TEMP_DIR_0}"
# New read from BQ to verify row restriction with nullable field and filter
# out nullable record
- pipeline:
type: chain
transforms:
- type: ReadFromBigQuery
config:
table: "{BQ_TABLE_1}"
fields: ["label","rank","timestamp"]
row_restriction: "TIMESTAMP(timestamp) <= TIMESTAMP_SUB('2025-07-14 04:00:00', INTERVAL 4 HOUR)"
- type: AssertEqual
config:
elements:
- {label: "4a", rank: 3, timestamp: "2024-07-14 00:00:00 UTC"}
- {label: "6a", rank: 5,timestamp: "2024-07-14T02:00:00.123Z"}
options:
project: "apache-beam-testing"
temp_location: "{TEMP_DIR_1}"
# New read from BQ to verify row restriction with nullable field and keep
# nullable record
- pipeline:
type: chain
transforms:
- type: ReadFromBigQuery
config:
table: "{BQ_TABLE_1}"
fields: ["timestamp", "label", "rank"]
row_restriction: "timestamp is NULL"
- type: AssertEqual
config:
elements:
- {label: "5a", rank: 4}
options:
project: "apache-beam-testing"
temp_location: "{TEMP_DIR_1}"