AVRO에 대한 새로운 소식입니다. 분명한 사항이 빠진 경우 변명하십시오. AVRO 스키마에 대한 입력의 유효성을 검사하는 AVRO 유효성 검사기/명령 줄 유틸리티가 있습니까? 또는 json 입력에서 오류가 발생한 지점을 가리킬 수도 있습니다.AVRO 유효성 확인
5
A
답변
4
나는 알고 있습니다. json 파일이 스키마와 일치하는지 알려주는이 작은 파이썬 스크립트를 작성했지만, 사용자에게 알려주지 않습니다. 오류가있는 경우 오류가 발생합니다.
Python avro library에 따라 다릅니다.
#!/usr/bin/env python
from avro.io import validate
from avro.schema import parse
from json import loads
from sys import argv
def main(argv):
valid = set()
invalid_avro = set()
invalid_json = set()
if len(argv) < 3:
print "Give me an avro schema file and a whitespace-separated list of json files to validate against it."
else:
schema = parse(open(argv[1]).read())
for arg in argv[2:]:
try:
json = loads(open(arg, 'r').read())
if validate(schema, json):
valid.add(arg)
else:
invalid_avro.add(arg)
except ValueError:
invalid_json.add(arg)
print ' Valid files:\n\t' + '\n\t'.join(valid)
print 'Invalid avro:\n\t' + '\n\t'.join(invalid_avro)
print 'Invalid json:\n\t' + '\n\t'.join(invalid_json)
if '__main__' == __name__:
main(argv)
1
Avro 스키마를 Avro 데이터를 처리 할 때 Avro 스키마가 필수적이므로 항상 기본적으로 기본적으로 유효성을 검사합니다. 달리 말하자면, Avro를 파싱하는 것은 필연적으로 그것을 검증 할 것입니다.
Avro 데이터에 메타 데이터가 거의 없다는 점을 감안하면 호환되지 않는 모든 변경 사항은 본질적으로 데이터 손상입니다. 그리고 너는 그냥 쓰레기를 얻을지도 모른다. 필드 ID 나 구분 기호가 없기 때문에 모든 데이터는 스키마에서 따라야하는 것을 기반으로 해석됩니다. 이러한 중복성 부족은 데이터를 매우 작게 만들지 만, 심지어 가장 작은 데이터 손상으로도 전체 데이터 스트림을 쓸모 없게 만들 수 있음을 의미합니다.
1
JSON에서 실행할 수있는 JavaScript 용 Avro 유효성 검사기를 만들었습니다. Avro 릴리스의 일부는 아니지만 곧 커밋해야합니다. 패치는 https://issues.apache.org/jira/browse/AVRO-485에서 찾을 수 있습니다.
관련 문제
- 1. Knockoutjs 유효성 확인 및 서버 유효성 확인
- 2. 유효성 확인
- 3. 아파치 avro 반영 사용
- 4. Avro RPC/Storm 통합
- 5. avro 스키마의 선택적 배열
- 6. HDFS에서 간단한 Avro 파일 읽기
- 7. Avro Map-Reduce on oozie
- 8. C의 데이터 유효성 확인
- 9. spring.net 유효성 확인
- 10. URL 슬러그 유효성 확인
- 11. 복수 필드 유효성 확인
- 12. UITextField 유효성 확인
- 13. asp.net의 유효성 확인
- 14. 특수 문자 유효성 확인
- 15. NSURLConnection 유효성 확인
- 16. 팩 uri 유효성 확인
- 17. 동적 모델 유효성 확인
- 18. C의 숫자 유효성 확인
- 19. PHP의 데이터 유효성 확인
- 20. 트위터 이름 유효성 확인
- 21. couchdb 유효성 확인 기능
- 22. Symfony2 - 정규식 유효성 확인
- 23. WADL 파일의 유효성 확인
- 24. 메일의 MX 유효성 확인
- 25. Django ChoiseField 유효성 확인
- 26. DEFLATED 데이터의 유효성 확인
- 27. 체크 박스 유효성 확인
- 28. ASP.NET 페이지 유효성 확인
- 29. 빌드주기의 HTML 유효성 확인
- 30. 유효성 확인 메시지
스크립트를 이용해 주셔서 감사합니다. 실제 문제를 지적하는 것은 아무것도 없다는 사실은 도청입니다. – airboss
@Anup 스키마와 입력을 청크로 분해하고 그 청크의 유효성을 검사해야합니다. RecordSchema를 깨는 것은 쉽지만 JSON 입력이 유효하지 않은 경우이를 깨뜨리는 방법을 알기가 어렵습니다. 의견이 있으면 알려주세요. – kojiro