Wie kann ich AVRO C ++ verwenden, um eine Datei für ein Schema zu schreiben, das ich programmatisch definiert habe?
Posted: 14 Feb 2025, 01:57
Ich habe ein Beispielschema, das ich programmatisch definiere. Es ist so etwas wie < /p>
Code: Select all
struct UserEntry {
int64_t user_id;
std::string user_name;
std::string user_email;
int64_t user_phn;
}
avro::ValidSchema SampleUserPhEntry() {
avro::RecordSchema schema("UserEntries");
schema.addField("user_id", avro::LongSchema());
schema.addField("user_name", avro::StringSchema());
schema.addField("user_email", avro::StringSchema());
schema.addField("user_phone", avro::LongSchema());
return avro::ValidSchema(schema);
}
< /code>
Die meisten Beispiele, die ich im Repo sehe, verwenden eine generierte Struktur, um eine Avro -Datei zu schreiben. Gibt es eine Möglichkeit, meine benutzerdefinierte definierte Struktur zu verwenden, um eine AVRO -Datei zu schreiben? >
int WriteUserPhEntry() {
avro::ValidSchema schema = SampleUserPhEntry();
avro::GenericDatum schema_datum(schema);
const char* file_name = "user_entries.avro";
avro::DataFileWriter writer(file_name, schema);
avro::GenericRecord& record = schema_datum.value();
record.field("user_id").value() = static_cast(64);
record.field("user_name").value() = "avro_user";
record.field("user_email").value() = "avro_user@avro.com";
record.field("user_phone").value() = 1234567890;
std::cout