public void checkPipePluginExistence(
      final Map<String, String> extractorAttributes,
      final Map<String, String> processorAttributes,
      final Map<String, String> connectorAttributes) {
    final PipeParameters extractorParameters = new PipeParameters(extractorAttributes);
    final String extractorPluginName =
        extractorParameters.getStringOrDefault(
            Arrays.asList(PipeExtractorConstant.EXTRACTOR_KEY, PipeExtractorConstant.SOURCE_KEY),
            IOTDB_EXTRACTOR.getPipePluginName());
    if (!pipePluginMetaKeeper.containsPipePlugin(extractorPluginName)) {
      final String exceptionMessage =
          String.format(
              "Failed to create or alter pipe, the pipe extractor plugin %s does not exist",
              extractorPluginName);
      LOGGER.warn(exceptionMessage);
      throw new PipeException(exceptionMessage);
    }

    final PipeParameters processorParameters = new PipeParameters(processorAttributes);
    final String processorPluginName =
        processorParameters.getStringOrDefault(
            PipeProcessorConstant.PROCESSOR_KEY, DO_NOTHING_PROCESSOR.getPipePluginName());
    if (!pipePluginMetaKeeper.containsPipePlugin(processorPluginName)) {
      final String exceptionMessage =
          String.format(
              "Failed to create or alter pipe, the pipe processor plugin %s does not exist",
              processorPluginName);
      LOGGER.warn(exceptionMessage);
      throw new PipeException(exceptionMessage);
    }

    final PipeParameters connectorParameters = new PipeParameters(connectorAttributes);
    final String connectorPluginName =
        connectorParameters.getStringOrDefault(
            Arrays.asList(PipeConnectorConstant.CONNECTOR_KEY, PipeConnectorConstant.SINK_KEY),
            IOTDB_THRIFT_CONNECTOR.getPipePluginName());
    if (!pipePluginMetaKeeper.containsPipePlugin(connectorPluginName)) {
      final String exceptionMessage =
          String.format(
              "Failed to create or alter pipe, the pipe connector plugin %s does not exist",
              connectorPluginName);
      LOGGER.warn(exceptionMessage);
      throw new PipeException(exceptionMessage);
    }
  }
@return true if the pipe plugin is not created and the isSetIfExistsCondition is true, false
    otherwise
@throws PipeException if the pipe plugin is not created and the isSetIfExistsCondition is false
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipePluginInfo.java