


Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh)
Bagaimana untuk menghuraikan data Apache Avro? Artikel ini akan memperkenalkan anda kepada kaedah bersiri untuk menjana data Avro, menyahsiri untuk menghuraikan data Avro dan menggunakan FlinkSQL untuk menghuraikan data Avro saya harap ia akan membantu anda.
Dengan perkembangan pesat Internet, teknologi termaju seperti pengkomputeran awan, data besar, kecerdasan buatan AI dan Internet Perkara telah menjadi arus perdana teknologi tinggi teknologi pada era hari ini, seperti laman web e-dagang , pengecaman muka, pemanduan tanpa pemandu, rumah pintar, bandar pintar, dan lain-lain, bukan sahaja memudahkan keperluan harian orang ramai, makanan, perumahan dan pengangkutan, tetapi di sebalik tabir, sentiasa ada yang besar. jumlah data yang dikumpul, dikosongkan dan dianalisis oleh pelbagai platform sistem, dan adalah penting untuk memastikan kependaman rendah, daya pemprosesan tinggi, dan keselamatan data Apache Avro sendiri disiri melalui Skema untuk penghantaran binari memastikan penghantaran data berkelajuan tinggi, dan sebaliknya, ia memastikan keselamatan data , avro kini digunakan secara lebih meluas dalam pelbagai industri Cara memproses dan menghuraikan data avro amat penting data avro melalui siri dan gunakan FlinkSQL untuk analisis.
Artikel ini ialah demo penghuraian avro Pada masa ini, FlinkSQL hanya sesuai untuk penghuraian data avro yang kompleks tidak disokong buat masa ini.
Pengenalan adegan
Artikel ini terutamanya memperkenalkan tiga kandungan utama berikut:
Cara mensiri dan menjana data Avro
-
Cara menyahsiri dan menghuraikan data Avro
Cara menggunakan FlinkSQL untuk menghuraikan data Avro
Prasyarat
Untuk memahami apa itu avro, anda boleh merujuk kepada panduan permulaan pantas laman web rasmi apache avro
Fahami senario aplikasi avro
Langkah operasi
1 Cipta projek avro maven baharu dan konfigurasikan kebergantungan pom
Kandungan fail pom adalah seperti berikut:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.huawei.bigdata</groupId> <artifactId>avrodemo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.avro</groupId> <artifactId>avro</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.avro</groupId> <artifactId>avro-maven-plugin</artifactId> <version>1.8.1</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>schema</goal> </goals> <configuration> <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory> <outputDirectory>${project.basedir}/src/main/java/</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
Nota: Fail pom di atas dikonfigurasikan Menjana laluan kelas secara automatik, iaitu {project.basedir}/src/main /java/. Selepas konfigurasi ini, apabila melaksanakan perintah mvn, Pemalam ini akan menjana fail kelas secara automatik daripada skema avsc dalam direktori ini dan meletakkannya dalam direktori yang terakhir. Jika direktori avro tidak dijana, buat sahaja secara manual.
2. Tentukan skema
Gunakan JSON untuk mentakrifkan skema untuk Avro. Skema terdiri daripada jenis asas (null, boolean, int, long, float, double, bait dan rentetan) dan jenis kompleks (rekod, enum, tatasusunan, peta, kesatuan dan tetap). Sebagai contoh, yang berikut mentakrifkan skema pengguna, mencipta direktori avro dalam direktori utama dan kemudian mencipta pengguna fail baharu.avsc dalam direktori avro:
{"namespace": "lancoo.ecbdc.pre", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int", "null"]}, {"name": "favorite_color", "type": ["string", "null"]} ] }
3. Susun skema
点击maven projects项目的compile进行编译,会自动在创建namespace路径和User类代码
4、序列化
创建TestUser类,用于序列化生成数据
User user1 = new User(); user1.setName("Alyssa"); user1.setFavoriteNumber(256); // Leave favorite col or null // Alternate constructor User user2 = new User("Ben", 7, "red"); // Construct via builder User user3 = User.newBuilder() .setName("Charlie") .setFavoriteColor("blue") .setFavoriteNumber(null) .build(); // Serialize user1, user2 and user3 to disk DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class); DataFileWriter<User> dataFileWriter = new DataFileWriter<User>(userDatumWriter); dataFileWriter.create(user1.getSchema(), new File("user_generic.avro")); dataFileWriter.append(user1); dataFileWriter.append(user2); dataFileWriter.append(user3); dataFileWriter.close();
执行序列化程序后,会在项目的同级目录下生成avro数据
user_generic.avro内容如下:
Objavro.schema�{"type":"record","name":"User","namespace":"lancoo.ecbdc.pre","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":["int","null"]},{"name":"favorite_color","type":["string","null"]}]}
至此avro数据已经生成。
5、反序列化
通过反序列化代码解析avro数据
// Deserialize Users from disk DatumReader<User> userDatumReader = new SpecificDatumReader<User>(User.class); DataFileReader<User> dataFileReader = new DataFileReader<User>(new File("user_generic.avro"), userDatumReader); User user = null; while (dataFileReader.hasNext()) { // Reuse user object by passing it to next(). This saves us from // allocating and garbage collecting many objects for files with // many items. user = dataFileReader.next(user); System.out.println(user); }
执行反序列化代码解析user_generic.avro
avro数据解析成功。
6、将user_generic.avro上传至hdfs路径
hdfs dfs -mkdir -p /tmp/lztest/ hdfs dfs -put user_generic.avro /tmp/lztest/
7、配置flinkserver
- 准备avro jar包
将flink-sql-avro-*.jar、flink-sql-avro-confluent-registry-*.jar放入flinkserver lib,将下面的命令在所有flinkserver节点执行
cp /opt/huawei/Bigdata/FusionInsight_Flink_8.1.2/install/FusionInsight-Flink-1.12.2/flink/opt/flink-sql-avro*.jar /opt/huawei/Bigdata/FusionInsight_Flink_8.1.3/install/FusionInsight-Flink-1.12.2/flink/lib chmod 500 flink-sql-avro*.jar chown omm:wheel flink-sql-avro*.jar
-
同时重启FlinkServer实例,重启完成后查看avro包是否被上传
hdfs dfs -ls /FusionInsight_FlinkServer/8.1.2-312005/lib
8、编写FlinkSQL
CREATE TABLE testHdfs( name String, favorite_number int, favorite_color String ) WITH( 'connector' = 'filesystem', 'path' = 'hdfs:///tmp/lztest/user_generic.avro', 'format' = 'avro' );CREATE TABLE KafkaTable ( name String, favorite_number int, favorite_color String ) WITH ( 'connector' = 'kafka', 'topic' = 'testavro', 'properties.bootstrap.servers' = '96.10.2.1:21005', 'properties.group.id' = 'testGroup', 'scan.startup.mode' = 'latest-offset', 'format' = 'avro' ); insert into KafkaTable select * from testHdfs;
保存提交任务
9、查看对应topic中是否有数据
FlinkSQL解析avro数据成功。
【推荐:Apache使用教程】
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menghuraikan data Apache Avro (penjelasan dengan contoh). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Apache adalah perisian pelayan web sumber terbuka yang digunakan secara meluas dalam hosting laman web. Langkah Pemasangan: 1. Pasang menggunakan baris arahan di Ubuntu; 2. Fail konfigurasi terletak di /etc/apache2/apache2.conf atau /etc/httpd/conf/httpd.conf. Melalui sambungan modul, Apache menyokong hosting kandungan statik dan dinamik, mengoptimumkan prestasi dan keselamatan.

Apache masih digunakan secara meluas, tetapi bahagian pasarannya telah menurun dari lebih daripada 50% pada tahun 2010 kepada kurang daripada 30% pada tahun 2023. Kelebihannya terletak pada kestabilan dan kebolehpercayaannya, yang sesuai untuk aplikasi peringkat perusahaan yang memerlukan ciri-ciri ini; Kelemahannya ialah model multi-proses mengambil banyak sumber di bawah kesesuaian yang tinggi, dan NGINX melakukan lebih baik dalam pemprosesan konvensional yang tinggi.

Ciri -ciri teras Apachewebserver termasuk reka bentuk modular, konfigurasi hos maya, tetapan keselamatan dan pengoptimuman prestasi. 1) Reka bentuk modular membolehkan sambungan fleksibel dengan memuatkan modul yang berbeza, seperti mod_rewrite untuk penulisan semula URL. 2) Konfigurasi hos maya membolehkan beberapa laman web dijalankan pada satu pelayan. 3) Tetapan keselamatan menyediakan penyulitan SSL/TLS dan kawalan akses. 4) Pengoptimuman Prestasi melibatkan membolehkan pemeliharaan, menyesuaikan konfigurasi MPM, dan membolehkan cache.

Sebab-sebab kepentingan berterusan Apache termasuk kepelbagaian, fleksibiliti, sokongan komuniti yang kuat, penggunaan yang meluas dan kebolehpercayaan yang tinggi dalam aplikasi peringkat perusahaan, dan inovasi berterusan dalam teknologi baru muncul. Khususnya, 1) Projek Apache merangkumi pelbagai bidang dari pelayan web ke pemprosesan data besar, menyediakan penyelesaian yang kaya; 2) Komuniti Global Yayasan Perisian Apache (ASF) menyediakan momentum sokongan dan pembangunan berterusan untuk projek itu; 3) Apache menunjukkan kestabilan dan skalabiliti yang tinggi dalam aplikasi peringkat perusahaan seperti kewangan dan telekomunikasi; 4) Apache terus berinovasi dalam teknologi baru seperti pengkomputeran awan dan data besar, seperti terobosan dari Apacheflink dan Apachearrow.

Apache tetap penting dalam ekosistem teknologi hari ini. 1) Dalam bidang perkhidmatan web dan pemprosesan data besar, Apachehttpserver, Kafka dan Hadoop masih menjadi pilihan pertama. 2) Pada masa akan datang, kita perlu memberi perhatian kepada pengiktirafan awan, pengoptimuman prestasi dan penyederhanaan ekosistem untuk mengekalkan daya saing.

Apachehttpserver mempunyai kesan yang besar terhadap pengedaran web dan pengagihan kandungan. 1) Apache bermula pada tahun 1995 dan dengan cepat menjadi pilihan pertama di pasaran, menyediakan reka bentuk dan fleksibiliti modular. 2) Dalam hosting web, Apache digunakan secara meluas untuk kestabilan dan keselamatan dan menyokong pelbagai sistem operasi. 3) Dari segi pengagihan kandungan, menggabungkan penggunaan CDN meningkatkan kelajuan dan kebolehpercayaan laman web. 4) Apache dengan ketara meningkatkan prestasi laman web melalui konfigurasi pengoptimuman prestasi seperti pemampatan kandungan dan tajuk cache.

Apache boleh melayani HTML, CSS, JavaScript dan fail lain. 1) Konfigurasi Direktori Root Host dan Dokumen Maya, 2) Menerima, proses dan permintaan balik, 3) Gunakan.

Apachehttpserver telah menjadi pemimpin dalam bidang pelayan web untuk reka bentuk modular, skalabilitas, keselamatan dan pengoptimuman prestasi yang tinggi. 1. Reka bentuk modular menyokong pelbagai protokol dan fungsi dengan memuatkan modul yang berbeza. 2. Sangat berskala untuk menyesuaikan diri dengan keperluan aplikasi kecil hingga besar. 3. Keselamatan melindungi laman web melalui mod_security dan mekanisme pengesahan berganda. 4. Pengoptimuman Prestasi meningkatkan kelajuan pemuatan melalui pemampatan data dan caching.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Dreamweaver CS6
Alat pembangunan web visual

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.
