Flink: comprensión de DataSource
1. fromCollection(Collection): crea un flujo de datos a partir de Java.util.Collection de Java. Todos los elementos de la colección deben ser del mismo tipo.
2. fromCollection(Iterator, Class): crea un flujo de datos a partir de un iterador. Clase especifica el tipo de elemento devuelto por este iterador.
3. fromElements(T…): crea un flujo de datos a partir de una secuencia determinada de objetos. Todos los tipos de objetos deben ser iguales.
4. fromParallelCollection(SplittableIterator, Class): crea un flujo de datos paralelo a partir de un iterador. Clase especifica el tipo de elemento devuelto por este iterador.
5. generateSequence(from, to): crea un flujo de datos paralelo que genera una secuencia de números dentro de un intervalo específico.
1. readTextFile(ruta): lee un archivo de texto, es decir, un archivo que cumple con la especificación TextInputFormat, y lo devuelve como una cadena.
2. readFile(fileInputFormat, ruta): lee el archivo (una vez) según el formato de entrada del archivo especificado.
3. readFile(fileInputFormat, ruta, watchType, intervalo, pathFilter, typeInfo): este es el método llamado internamente por los dos métodos anteriores. Lee un archivo según el fileInputFormat dado y la ruta de lectura. Según el watchType proporcionado, esta fuente puede monitorear los nuevos datos de la ruta dada periódicamente (cada intervalo de milisegundos) (FileProcessingMode.PROCESS_CONTINUOUSLY), o procesar los datos del archivo correspondiente a la ruta una vez y salir (FileProcessingMode.PROCESS_ONCE). Puede excluir aún más los archivos que deben procesarse a través de pathFilter.
Implementación:
Notas importantes:
socketTextStream(String hostname, int port): lee desde el socket. Los elementos se pueden dividir mediante delimitadores.
addSource: agrega una nueva función de fuente. Por ejemplo, puede agregarSource(new FlinkKafkaConsumer011<>(…)) para leer datos de Apache Kafka.
1. Basado en conjuntos: conjunto de datos limitado, más adecuado para pruebas locales
2. Basado en archivos: adecuado para monitorear modificaciones de archivos y leer su contenido
3. Basado en Socket: escuche el puerto del host del host y obtenga datos del Socket
4. AddSource personalizado: la mayoría de los datos de la escena son ilimitados y vendrán continuamente. Por ejemplo, para consumir datos sobre un tema determinado en Kafka, debe usar este addSource. Tal vez porque se usa mucho, Flink proporciona directamente clases como FlinkKafkaConsumer011 para que las use directamente. Puede echar un vistazo a la clase básica FlinkKafkaConsumerBase, que es la clase más fundamental consumida por Flink Kafka.
5. Para obtener detalles sobre las fuentes actualmente admitidas por flink, lea la sección de conexiones del sitio web oficial;