Apache Avro
| {{#if: Apache Avro | Apache Avro | {{#invoke:WLink|getArticleBase}} }}
{{#if: | | ||||||||
|---|---|---|---|---|---|---|---|---|
colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | |
{{#if: {{#invoke:Wikidata|claim|P154}} |
| ||||||||
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }}{{#if: | | ||||||||
| {{#if: | }}| }} | ||||||||
| Basisdaten
{{#if: | | ||||||||
| Hauptentwickler |
{{#if: {{#invoke:Wikidata|claim|P126}} |
| |||||||
| Maintainer | claim|P126|parameter=link|references=ja|list=, }}
}} }}{{#if: Apache Software Foundation | | |||||||
| Entwickler | Apache Software Foundation |
{{#if: {{#invoke:Wikidata|claim|P178}} |
| |||||||
| Entwickler | claim|P178|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| Erscheinungsjahr |
{{#if: {{#invoke:Wikidata|claim|P577}} |
| |||||||
| Erscheinungsjahr | claim|P577|references=ja|list=, }} |
{{#if: {{#invoke:Wikidata|claim|P571}} |
| |||||||
| Erscheinungsjahr | claim|P571|references=ja|list=, }}
}} }} }}{{#ifeq: {{{AktuelleVersion}}} | KEINE_ANGABE || {{#if: | | |||||||
| Aktuelle Version | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} |
|
| Aktuelle Version | claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}} }}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: | | |||||||
| Aktuelle Vorabversion | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} |
|
| Aktuelle Vorabversion | claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}} }}{{#if: | | |||||||
| Ausführungsumgebung |
{{#if: POSIX (Linux, Unix, OpenBSD, macOS u. a.) |
| |||||||
| Betriebssystem | POSIX (Linux, Unix, OpenBSD, macOS u. a.) |
{{#if: {{#invoke:Wikidata|claim|P306}} |
| |||||||
| Betriebssystem | claim|P306|parameter=link|references=ja|list=, }}
}} }} }}{{#if: Ruby | | |||||||
| Programmiersprache | Ruby |
{{#if: {{#invoke:Wikidata|claim|P277}} |
| |||||||
| Programmiersprache | claim|P277|parameter=link|references=ja|list=, }}
}} }}{{#if: Serialisierung | | |||||||
| Kategorie | Serialisierung
}}{{#if: Apache-Lizenz 2.0 | | |||||||
| Lizenz | Apache-Lizenz 2.0 |
{{#if: {{#invoke:Wikidata|claim|P275}} |
| |||||||
| Lizenz | claim|P275|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| deutschsprachig | faculty|}} | ja | nein }}
}}{{#if: | | |||||||
| Sonstiges | {{{Sonstiges}}}
}}{{#if: avro.apache.org | | |||||||
avro.apache.org |
{{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} |
| ||||||||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
}} }}{{#if: | | ||||||||
| Dateien | [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]
}} | |||||||
Avro ist ein Remote-Procedure-Call- und Serialisierungs-Framework, das als Teil von Apache Hadoop entwickelt worden ist. Es verwendet JSON, um Datentypen und Protokolle zu definieren. Die eigentlichen Daten werden in einem kompakten Binärformat serialisiert. Sein Hauptverwendungszweck ist Hadoop, wo es sowohl als Serialisierungsformat für die Persistierung von Daten als auch als Datenübertragungsformat für die Kommunikation zwischen Hadoop-Knoten untereinander sowie zwischen Hadoop-Services und Client-Programmen verwendet werden kann.
Es ähnelt Apache Thrift, aber erfordert nicht die vorgängige Code-Generierung wenn das Schema sich ändert, außer dies wird für eine statisch typisierte Programmiersprache ausdrücklich gewünscht.
Sprachen mit APIs
Während theoretisch jede Programmiersprache Avro benutzen könnte, haben die folgenden Sprachen bereits fertig verfügbare APIs: <ref>https://github.com/phunt/avro-rpc-quickstart</ref>:
- Java
- C#<ref>https://issues.apache.org/jira/browse/AVRO/fixforversion/12316197</ref><ref>https://issues.apache.org/jira/browse/AVRO-533</ref><ref>https://cwiki.apache.org/confluence/display/AVRO/Supported+Languages</ref>
- C
- C++
- Kotlin
- Python
- Ruby
Avro IDL
Außer der Möglichkeit, JSON für Typ- und Protokoll-Definitionen zu verwenden, bietet AVRO auch eine noch experimentelle Funktionalität<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20100920001652
| {{#ifeq: 20100920001652 | *
| {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20100920001652}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-03-07 20:32:39 InternetArchiveBot | 2023-03-07 20:32:39 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20100920001652}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-03-07 20:32:39 InternetArchiveBot | 2023-03-07 20:32:39 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-03-07 20:32:39 InternetArchiveBot | 2023-03-07 20:32:39 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html}} }} ({{#if: {{#if: 2023-03-07 20:32:39 InternetArchiveBot | 2023-03-07 20:32:39 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Archivierte Kopie | {{#invoke:WLink|getEscapedTitle|Archivierte Kopie}} | {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html}} }}
}}}}}}}}{{#if:2023-03-07 20:32:39 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20100920001652|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://avro.apache.org/docs/current/idl.html}}
|| {{#if: || }}
}}{{#if: Archivierte Kopie
| {{#if: {{#invoke:WLink|isBracketedLink|Archivierte Kopie}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://avro.apache.org/docs/current/idl.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://avro.apache.org/docs/current/idl.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://avro.apache.org/docs/current/idl.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref> für eine alternative Schnittstellenbeschreibungssprache (IDL), deren Syntax als „Avro IDL“ bezeichnet wird. Dieses Format, das vorher „GenAvro“ genannt wurde, soll es Anwendern, die mit traditionellen IDLs vertraut sind, erleichtern, Avro zu verwenden. Avro IDL verwendet eine Syntax, die C++, C, Protocol Buffers und anderen ähnelt.
Siehe auch
- Apache Thrift
- Googles Protocol Buffers
- Ciscos Etch
- ZeroCs Internet Communications Engine
- Microsofts „M“
- MessagePack
Einzelnachweise
<references />
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Middleware
- Beschreibungssprache
- Offenes Format
- Streaming
- Java (Programmiersprache)
- Binärformat