Как насчет создания пустой таблицы из рассматриваемой таблицы с последующим ее экспортом в avro, вы получите файл avro со схемой и без данных.
CREATE TABLE mydataset.empty_table AS SELECT * FROM mytable WHERE
(partition_column) = 'xx' AND 1 = 0
Затем вы можете запустить следующий golang фрагмент для извлечения схемы AVRO
import (
"os"
"log"
"fmt"
"github.com/linkedin/goavro"
)
func main() {
avroLocation = "/tmp/myavro.avro"
reader, err := os.Open("avroLocation")
if err != nil {
log.Fatal(err)
}
avroReader, err := goavro.NewOCFReader(reader)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", avroReader.MetaData()["avro.schema"])
}