SQL 에이전트는 구성 가능한 정규식(regex)을 기반으로 SQL 문을 정규화하는 확장과 함께 제공됩니다. 이 RegexNormalizerExtension.jar 파일은 <Agent_Home>/wily/core/ext 디렉터리에 있습니다.
정규식 SQL 문 노멀라이저를 사용하는 방법에 대한 예제는 정규식 SQL 문 노멀라이저 예제를 참조하십시오.
정규식 확장을 적용하려면
미리 구성된 정규화 체계를 재정의하는 데 사용할 SQL 노멀라이저 확장의 이름을 지정합니다. 정규식 확장을 사용하도록 설정할 때 이 속성을 RegexSqlNormalizer로 설정하십시오.
이 속성은 regex 그룹 키를 지정하며, 지정된 키는 나열된 순서대로 평가됩니다. 이 속성은 정규식 확장을 사용하도록 설정하는 데 필요합니다. 기본값은 없습니다.
이 속성은 SQL 문과 일치시키는 데 사용되는 regex 패턴을 지정합니다. java.util.Regex package 클래스에서 허용되는 유효한 모든 정규식을 여기에 사용할 수 있습니다. 이 속성은 정규식 확장을 사용하도록 설정하는 데 필요합니다. 기본값은 없습니다.
이 속성은 대체 문자열 형식을 지정합니다. java.util.Regex package 클래스에서 허용되는 유효한 모든 regex를 여기에 사용할 수 있습니다. 이 속성은 정규식 확장을 사용하도록 설정하는 데 필요합니다. 기본값은 없습니다.
이 속성이 true로 설정되어 있으면 SQL 문자열이 모든 regex 키 그룹과 비교하여 평가됩니다. 구현은 체인으로 연결됩니다. 따라서 SQL 문자열이 여러 키 그룹과 일치하는 경우 group1의 정규화된 SQL 출력이 group2에 대한 입력으로 제공되는 방식으로 처리됩니다.
이 속성이 false로 설정되어 있으면 키 그룹이 SQL 문자열과 일치하는 즉시 해당 그룹의 정규화된 SQL 출력이 반환됩니다. MatchFallThrough 속성으로는 확장을 사용하거나 사용하지 않도록 설정할 수 없습니다.
예를 들어 Select * from A where B와 같은 SQL 문자열이 있는 경우 다음 속성을 설정합니다.
introscope.agent.sqlagent.normalizer.regex.keys=key1,key2 introscope.agent.sqlagent.normalizer.regex.key1.pattern=A introscope.agent.sqlagent.normalizer.regex.key1.replaceFormat=X introscope.agent.sqlagent.normalizer.regex.key2.pattern=B introscope.agent.sqlagent.normalizer.regex.key2.replaceFormat=Y
introscope.agent.sqlagent.normalizer.regex.matchFallThrough가 false이면 SQL은 key1 regex에 대해 정규화됩니다. 해당 regex의 출력은 Select * from X where B가 됩니다. 이 SQL이 반환됩니다.
introscope.agent.sqlagent.normalizer.regex.matchFallThrough가 true이면 SQL은 먼저 key1 regex에 대해 정규화됩니다. 해당 regex의 출력은 Select * from X where B입니다. 그런 다음 이 출력이 key2 regex에 제공됩니다. key2 regex의 출력은 Select * from X where Y입니다. 이 SQL이 반환됩니다.
참고: 이 속성은 정규식 확장을 사용하도록 설정하는 데 필요하지 않습니다.
이 속성은 패턴 일치 시 대/소문자 구분 여부를 지정합니다. 기본값은 false입니다. 이 속성은 정규식 확장을 사용하도록 설정하는 데 필요하지 않습니다.
이 속성이 false로 설정되어 있으면 SQL에서 첫 번째로 나타나는 일치하는 패턴이 대체 문자열로 바뀝니다. 이 속성이 true로 설정되어 있으면 SQL에서 나타나는 일치하는 패턴이 모두 대체 문자열로 바뀝니다.
예를 들어 Select * from A where A like Z와 같은 SQL 문자열이 있는 경우 다음과 같이 속성을 설정합니다.
introscope.agent.sqlagent.normalizer.regex.key1.pattern=A introscope.agent.sqlagent.normalizer.regex.key1.replaceFormat=X
introscope.agent.sqlagent.normalizer.regex.key1.replaceAl이 false이면 정규화된 SQL 문 Select * from X where A like Z가 반환됩니다.
introscope.agent.sqlagent.normalizer.regex.key1.replaceAl이 true이면 정규화된 SQL 문 Select * from X where X like Z가 반환됩니다.
기본값은 false입니다. 이 속성은 정규식 확장을 사용하도록 설정하는 데 필요하지 않습니다.
참고: 정규식 패턴이 입력 SQL과 일치하지 않으면 RegexNormalizer는 Null 문자열을 반환합니다. 그러면 문 노멀라이저는 기본 정규화 체계를 사용합니다.
중요! 위에 나열된 모든 속성은 핫 속성이므로, IntroscopeAgent.profile을 저장하면 이러한 속성의 변경 사항이 적용됩니다.
|
Copyright © 2013 CA.
All rights reserved.
|
|