flink-connector-mysql-cdc

时间: 2023-10-31 09:54:22 浏览: 46
flink-connector-mysql-cdc是一个用于连接Flink和MySQL Change Data Capture(CDC)的jar包。您可以通过访问https://mvnrepository.com/artifact/com.alibaba.ververica/flink-connector-mysql-cdc/下载这个jar包,并将其复制到Flink安装位置的lib目录中。 在使用flink-connector-mysql-cdc之前,您需要启动Flink SQL Client,并执行以下SQL语句: ``` CREATE TABLE mysql_binlog ( id INT NOT NULL, name STRING, age INT ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = 'localhost', 'port' = '3306', 'username' = 'root', 'password' = '123456', 'database-name' = 'demo', 'table-name' = 'student' ); CREATE TABLE sink_table ( id INT NOT NULL, name STRING, age INT ) WITH ( 'connector' = 'print' ); INSERT INTO sink_table SELECT id, name, age FROM mysql_binlog; ``` 这些SQL语句会创建名为mysql_binlog的表,并将其与MySQL的binlog进行连接。同时,它还会创建名为sink_table的目标表,用于接收来自mysql_binlog表的数据,并使用print连接器将数据打印出来。 如果您需要更详细地了解Flink CDC的配置,您可以参考一篇名为《Flink CDC》的文章。在该文章中,您可以深入了解CDC的配置和MySQL如何启用binlog功能。

相关推荐

要下载Flink SQL Connector for MySQL CDC,您可以按照以下步骤进行操作: 1. 首先,您需在您的项目中添加Flink SQL Connector for MySQL CDC的依赖项。可以使用Maven或Gradle构建工具来完成这一步骤。在您的项目配置文件中,将以下代码添加到依赖项部分: <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-sql-connector-mysql-cdc_2.11</artifactId> <version>1.13.1</version> </dependency> 2. 在使用Flink SQL Connector for MySQL CDC之前,您需要确保已经安装并启动了Flink集群。您可以从Flink官方网站下载并按照安装说明进行安装。 3. 下一步是配置MySQL的Change Data Capture (CDC)。您可以在MySQL的配置文件中启用CDC功能,并配置要监视的数据库表。具体配置项可能会因MySQL版本而有所不同,您可以参考MySQL的官方文档或相关教程进行操作。 4. 配置完CDC后,您可以使用Flink的Table API或SQL语句来读取CDC的数据。可以使用TableEnvironment对象来创建与MySQL CDC连接,并定义CDC表。以下是一个示例代码片段: java // 创建Flink Table环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); // 注册MySQL CDC Connector String ddl = "CREATE TABLE mysql_cdc_table (..., PRIMARY KEY (id)) " + "WITH (...properties...) "; tableEnv.executeSql(ddl); // 查询CDC数据 String query = "SELECT * FROM mysql_cdc_table"; Table result = tableEnv.sqlQuery(query); // 打印查询结果 tableEnv.toRetractStream(result, Row.class).print(); // 执行作业 env.execute(); 这样,您就可以下载、配置和使用Flink SQL Connector for MySQL CDC来处理MySQL的Change Data Capture数据了。若需要进一步了解和使用该连接器的更多功能,建议参考官方文档或相关教程。
好的,您可以按照以下的方式来编写docker-compose.yml文件: version: '3.7' services: jobmanager: image: flink:1.17.0 command: jobmanager ports: - "8081:8081" taskmanager: image: flink:1.17.0 command: taskmanager depends_on: - jobmanager links: - jobmanager:jobmanager environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager - FLINK_TASK_MANAGER_MEMORY_PROCESS_SIZE=1024m elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 environment: - discovery.type=single-node ports: - "9200:9200" mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=<your_password> - MYSQL_USER=<your_user> - MYSQL_PASSWORD=<your_password> - MYSQL_DATABASE=<your_database> ports: - "3306:3306" postgres: image: postgres:13.1 environment: - POSTGRES_USER=<your_user> - POSTGRES_PASSWORD=<your_password> - POSTGRES_DB=<your_database> ports: - "5432:5432" flink-job: image: flink:1.17.0 volumes: - ./flink-conf.yaml:/opt/flink/conf/flink-conf.yaml - ./lib/flink-sql-connector-elasticsearch7-3.0.1-1.17.jar:/opt/flink/lib/flink-sql-connector-elasticsearch7-3.0.1-1.17.jar - ./lib/flink-sql-connector-mysql-cdc-2.3.0.jar:/opt/flink/lib/flink-sql-connector-mysql-cdc-2.3.0.jar - ./lib/flink-sql-connector-postgres-cdc-2.3.0.jar:/opt/flink/lib/flink-sql-connector-postgres-cdc-2.3.0.jar command: jobmanager depends_on: - jobmanager - elasticsearch - mysql - postgres links: - elasticsearch:elasticsearch - mysql:mysql - postgres:postgres environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager - FLINK_TM_HEAP_SIZE=1024m - FLINK_PROPERTIES= - FLINK_ENV_JAVA_OPTS= - FLINK_ENV_JAVA_TOOL_OPTIONS= - FLINK_CONF_DIR=/opt/flink/conf - FLINK_LIB_DIR=/opt/flink/lib - FLINK_PLUGINS_DIR=/opt/flink/plugins - FLINK_OPT_DIR=/opt/flink/opt - FLINK_LOG_DIR=/opt/flink/log - FLINK_HOME=/opt/flink volumes: - ./job.jar:/opt/flink/job.jar - ./flink-conf.yaml:/opt/flink/conf/flink-conf.yaml 其中需要注意的是: 1. 在 flink-job 服务中,我们使用了 volumes 来挂载 flink-conf.yaml 和三个依赖的jar包到容器的 /opt/flink/conf 和 /opt/flink/lib 目录中。 2. 我们在 flink-job 服务的环境变量中设置了 FLINK_PROPERTIES,因为 Flink 在启动时会读取这个环境变量中的配置信息。 3. 我们在 flink-job 服务的环境变量中设置了 FLINK_LIB_DIR,这是因为 Flink 在启动时会从这个目录中加载依赖的jar包。 4. 我们在 flink-job 服务的环境变量中设置了 FLINK_CONF_DIR,这是因为 Flink 在启动时会读取这个目录中的配置文件。 5. 我们在 flink-job 服务的环境变量中设置了 FLINK_HOME,这是因为 Flink 在启动时需要知道它的安装路径。 上述的docker-compose.yml文件可以满足您的要求,在启动容器后,您可以使用以下的命令来进入到flink-job容器中: docker-compose run flink-job /bin/bash 然后,您可以在容器中运行Flink任务了。
关于flink-cdc的建表操作,我们可以参考官方文档提供的示例代码。在官方文档的"Table Sink"部分,有一个示例展示了如何使用flink-cdc创建一个MySQL表。首先,你需要创建一个TableEnvironment对象,然后使用该对象创建一个Catalog,并将该Catalog注册到TableEnvironment中。接下来,你可以使用TableEnvironment的executeSql方法执行创建表的SQL语句。下面是一个示例代码: java import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.EnvironmentSettings; import org.apache.flink.table.api.TableEnvironment; public class FlinkCDCExample { public static void main(String[] args) { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build(); TableEnvironment tEnv = TableEnvironment.create(settings); // 创建一个MySQL的Catalog tEnv.executeSql("CREATE CATALOG mycatalog WITH (\n" + " 'type'='jdbc',\n" + " 'property-version'='1',\n" + " 'base-url'='jdbc:mysql://localhost:3306',\n" + " 'default-database'='mydatabase',\n" + " 'username'='myuser',\n" + " 'password'='mypassword',\n" + " 'jdbc-driver'='com.mysql.cj.jdbc.Driver'\n" + ")"); // 注册Catalog到TableEnvironment tEnv.useCatalog("mycatalog"); // 创建MySQL表 tEnv.executeSql("CREATE TABLE mytable (\n" + " id INT,\n" + " name STRING\n" + ") WITH (\n" + " 'connector'='mysql-cdc',\n" + " 'database-name'='mydatabase',\n" + " 'table-name'='mytable',\n" + " 'debezium.deployment.mode'='local'\n" + ")"); } } 以上代码创建了一个名为mytable的MySQL表,表结构包含id和name两个字段。你可以根据自己的需求修改表名和字段。同时,根据实际情况修改MySQL的连接信息,包括URL、用户名和密码等。请确保你已经将相应的依赖项添加到项目的依赖文件中,并导入所需的类库。 需要注意的是,以上示例使用的是MySQL作为示例数据库,如果你使用的是其他数据库,你需要相应地修改连接信息和驱动程序。 希望以上信息对你有所帮助。如有任何疑问,请随时提问。123 #### 引用[.reference_title] - *1* *2* *3* [浅谈flink-cdc的使用](https://blog.csdn.net/chenzuoli/article/details/122021562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
下面是使用 Flink Connector TiDB CDC 通过 Stream API 连接 TiDB 的示例代码: java import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common.serialization.SimpleStringSchema; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer; import org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer; import org.apache.flink.streaming.connectors.tidb.JdbcConnectionOptions; import org.apache.flink.streaming.connectors.tidb.TiDBOptions; import org.apache.flink.streaming.connectors.tidb.TiDBSink; import org.apache.flink.streaming.connectors.tidb.TiDBSource; import org.apache.flink.streaming.connectors.tidb.TransactionIsolation; import org.apache.flink.streaming.connectors.tidb.TiDBCatalog; import org.apache.flink.table.api.EnvironmentSettings; import org.apache.flink.table.api.bridge.java.StreamTableEnvironment; import org.apache.flink.table.api.bridge.java.internal.StreamTableEnvironmentImpl; import org.apache.flink.types.Row; import java.util.Properties; public class TiDBStreamExample { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build(); StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, settings); // Define TiDB catalog TiDBCatalog catalog = new TiDBCatalog("tidb_catalog", "default_database", JdbcConnectionOptions.builder() .withUrl("jdbc:mysql://tidb_ip:tidb_port/tidb_database_name?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC") .withUsername("tidb_username") .withPassword("tidb_password") .build(), TiDBOptions.builder().withDatabaseUrl("jdbc:mysql://tidb_ip:tidb_port/tidb_database_name").build()); tEnv.registerCatalog("tidb_catalog", catalog); tEnv.useCatalog("tidb_catalog"); // Define TiDB source TiDBSource source = TiDBSource.builder() .setDatabaseName("tidb_database_name") .setTableName("tidb_table_name") .setOptions(TiDBOptions.builder() .withDatabaseUrl("jdbc:mysql://tidb_ip:tidb_port/tidb_database_name") .build()) .setPrimaryKey("id") .setTransactionIsolation(TransactionIsolation.READ_COMMITTED) .build(); // Create a data stream from TiDB source DataStream<Row> stream = env.addSource(source); // Define Flink Kafka producer Properties props = new Properties(); props.setProperty("bootstrap.servers", "kafka_ip:kafka_port"); FlinkKafkaProducer<String> kafkaProducer = new FlinkKafkaProducer<String>( "kafka_topic", new SimpleStringSchema(), props); // Map the data stream to a string stream and send it to Kafka DataStream<String> stringStream = stream.map(new MapFunction<Row, String>() { @Override public String map(Row row) throws Exception { return row.toString(); } }); stringStream.addSink(kafkaProducer); // Define Flink Kafka consumer FlinkKafkaConsumer<String> kafkaConsumer = new FlinkKafkaConsumer<String>( "kafka_topic", new SimpleStringSchema(), props); // Create a data stream from Kafka DataStream<String> kafkaStream = env.addSource(kafkaConsumer); // Convert the Kafka stream to a table and register it in the table environment tEnv.createTemporaryView("kafka_table", kafkaStream, "value"); // Query the table and print the result to console tEnv.sqlQuery("SELECT * FROM kafka_table").execute().print(); // Define TiDB sink TiDBSink sink = TiDBSink.builder() .setDatabaseName("tidb_database_name") .setTableName("tidb_table_name") .setOptions(TiDBOptions.builder() .withDatabaseUrl("jdbc:mysql://tidb_ip:tidb_port/tidb_database_name") .build()) .setPrimaryKey("id") .build(); // Convert the Kafka stream back to a data stream of rows and write it to TiDB DataStream<Row> rowStream = kafkaStream.map(new MapFunction<String, Row>() { @Override public Row map(String value) throws Exception { String[] fields = value.split(","); return Row.of(Integer.parseInt(fields[0]), fields[1], Double.parseDouble(fields[2])); } }); rowStream.addSink(sink); env.execute("TiDB Stream Example"); } } 在上面的示例代码中,我们首先定义了一个 TiDBCatalog 对象,用于连接 TiDB 数据库。然后,我们使用 TiDBSource.builder() 方法定义了一个 TiDB 数据源,用于从 TiDB 中读取数据。接着,我们使用 env.addSource(source) 方法创建了一个 Flink 数据流。我们还定义了一个 Flink Kafka 生产者,用于将数据流发送到 Kafka。为了将数据流转换为字符串流,我们使用了 map() 方法。然后,我们将字符串流发送到 Kafka。接着,我们定义了一个 Flink Kafka 消费者,用于从 Kafka 中读取数据。我们还将 Kafka 数据流转换为表,并在表环境中注册它。最后,我们使用 TiDBSink.builder() 方法定义了一个 TiDB 汇聚器,用于将数据流写入 TiDB 中。 请注意,在上面的示例代码中,我们使用了 TiDBCatalog 和 TiDBSource 类来连接 TiDB 数据库。这些类需要 TiDB Connector JAR 包的支持。如果您没有安装该 JAR 包,请按照以下步骤安装: 1. 访问 TiDB Connector JAR 包的下载页面:https://github.com/pingcap/tidb/releases/tag/v4.0.8 2. 下载适用于您的操作系统的 JAR 包 3. 将 JAR 包添加到您的项目依赖中 最后,记得将代码中的 tidb_ip、tidb_port、tidb_database_name、tidb_table_name、tidb_username 和 tidb_password 替换为实际的值。同样,将代码中的 kafka_ip、kafka_port 和 kafka_topic 替换为实际的值。
要使用Flink CDC读取MySQL,您需要按照以下步骤进行操作: 1. 首先,您需要从Flink CDC的GitHub发布页面下载最新的jar包flink-sql-connector-mysql-cdc-2.0.2.jar。 2. 接下来,进入Flink的bin目录,并执行./start-cluster.sh命令启动Flink测试环境。 3. 在Flink SQL中读取MySQL数据,您需要执行以下步骤: - 进入Flink的bin目录,并执行./sql-client.sh命令启动Flink SQL。 - 在Flink SQL中创建一个表,例如,可以使用以下命令创建名为mysql_binlog的表: CREATE TABLE mysql_binlog ( id INT NOT NULL, name STRING, description STRING, weight DECIMAL(10,3), PRIMARY KEY(id) NOT ENFORCED ) WITH ( 'connector' = 'mysql-cdc', 'hostname' = '192.168.0.200', 'port' = '3306', 'username' = 'root', 'password' = 'passwd', 'database-name' = 'demo', 'table-name' = 'products' ); 这将使用Flink CDC连接器创建一个名为mysql_binlog的表,其中包含了与MySQL数据库中的demo.products表相对应的列和设置。您可以根据实际情况修改连接器的配置参数。 以上是使用Flink CDC读取MySQL的步骤。通过执行这些步骤,您可以在Flink中使用CDC功能来读取MySQL数据。123 #### 引用[.reference_title] - *1* *2* *3* [Flink CDC读取MySQL的例子](https://blog.csdn.net/chrisy521/article/details/121377441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
Flink CDC是一种用于将MySQL数据同步到Hive的工具。要实现这个过程,需要分为两个步骤。第一步是将MySQL数据同步到Kafka,可以使用MySQL的binlog来实现数据的实时同步到Kafka。第二步是将Kafka中的数据同步到Hive,可以使用Flink SQL来进行数据的流转和处理。 在具体实施过程中,你可以按照以下步骤操作: 1. 启动Flink SQL客户端,使用以下命令进入Flink SQL命令行: bin/sql-client.sh embedded -s flink-cdc-hive 2. 在Flink SQL中创建一个表,使用connector='upsert-kafka'指定连接器为Kafka,并配置相关的参数,如Kafka的服务器地址、topic等。例如: CREATE TABLE product_view_mysql_kafka_parser( id int, user_id int, product_id int, server_id int, duration int, times string, time timestamp ) WITH ( 'connector' = 'kafka', 'topic' = 'flink-cdc-kafka', 'properties.bootstrap.servers' = 'kafka-001:9092', 'scan.startup.mode' = 'earliest-offset', 'format' = 'json' ); 3. 在Hive中创建一个目标表来接收数据,可以使用Hive的语法来定义表结构和存储格式。 4. 使用Flink的CDC功能将Kafka中的数据流转到Hive中的目标表。 这样,你就可以通过Flink CDC将MySQL的数据同步到Hive中了。更详细的信息可以参考官方文档。123 #### 引用[.reference_title] - *1* *2* *3* [flink-cdc实时增量同步mysql数据到hive](https://blog.csdn.net/ddxygq/article/details/126889752)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

最新推荐

面向6G的编码调制和波形技术.docx

面向6G的编码调制和波形技术.docx

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire

Power BI中的数据导入技巧

# 1. Power BI简介 ## 1.1 Power BI概述 Power BI是由微软公司推出的一款业界领先的商业智能工具,通过强大的数据分析和可视化功能,帮助用户快速理解数据,并从中获取商业见解。它包括 Power BI Desktop、Power BI Service 以及 Power BI Mobile 等应用程序。 ## 1.2 Power BI的优势 - 基于云端的数据存储和分享 - 丰富的数据连接选项和转换功能 - 强大的数据可视化能力 - 内置的人工智能分析功能 - 完善的安全性和合规性 ## 1.3 Power BI在数据处理中的应用 Power BI在数据处

建立关于x1,x2 和x1x2 的 Logistic 回归方程.

假设我们有一个包含两个特征(x1和x2)和一个二元目标变量(y)的数据集。我们可以使用逻辑回归模型来建立x1、x2和x1x2对y的影响关系。 逻辑回归模型的一般形式是: p(y=1|x1,x2) = σ(β0 + β1x1 + β2x2 + β3x1x2) 其中,σ是sigmoid函数,β0、β1、β2和β3是需要估计的系数。 这个方程表达的是当x1、x2和x1x2的值给定时,y等于1的概率。我们可以通过最大化似然函数来估计模型参数,或者使用梯度下降等优化算法来最小化成本函数来实现此目的。

智能网联汽车技术期末考试卷B.docx

。。。

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依

数据可视化:Pandas与Matplotlib的结合应用

# 1. 数据可视化的重要性 1.1 数据可视化在数据分析中的作用 1.2 Pandas与Matplotlib的概述 **1.1 数据可视化在数据分析中的作用** 数据可视化在数据分析中扮演着至关重要的角色,通过图表、图形和地图等形式,将抽象的数据转化为直观、易于理解的可视化图像,有助于人们更直观地认识数据,发现数据之间的关联和规律。在数据分析过程中,数据可视化不仅可以帮助我们发现问题和趋势,更重要的是能够向他人有效传达数据分析的结果,帮助决策者做出更明智的决策。 **1.2 Pandas与Matplotlib的概述** Pandas是Python中一个提供数据

1. IP数据分组的片偏移计算,MF标识符怎么设置。

IP数据分组是将较长的IP数据报拆分成多个较小的IP数据报进行传输的过程。在拆分的过程中,每个数据分组都会设置片偏移和MF标识符来指示该分组在原始报文中的位置和是否为最后一个分组。 片偏移的计算方式为:将IP数据报的总长度除以8,再乘以当前分组的编号,即可得到该分组在原始报文中的字节偏移量。例如,若原始报文总长度为1200字节,每个数据分组的最大长度为500字节,那么第一个分组的片偏移为0,第二个分组的片偏移为500/8=62.5,向下取整为62,即第二个分组的片偏移为62*8=496字节。 MF标识符是指“更多的分组”标识符,用于标识是否还有后续分组。若该标识位为1,则表示还有后续分组;

8个案例详解教会你ThreadLocal.docx

通常情况下,我们创建的成员变量都是线程不安全的。因为他可能被多个线程同时修改,此变量对于多个线程之间彼此并不独立,是共享变量。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程无法访问和修改。也就是说:将线程公有化变成线程私有化。

关系数据表示学习

关系数据卢多维奇·多斯桑托斯引用此版本:卢多维奇·多斯桑托斯。关系数据的表示学习机器学习[cs.LG]。皮埃尔和玛丽·居里大学-巴黎第六大学,2017年。英语。NNT:2017PA066480。电话:01803188HAL ID:电话:01803188https://theses.hal.science/tel-01803188提交日期:2018年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaireUNIVERSITY PIERRE和 MARIE CURIE计算机科学、电信和电子学博士学院(巴黎)巴黎6号计算机科学实验室D八角形T HESIS关系数据表示学习作者:Ludovic DOS SAntos主管:Patrick GALLINARI联合主管:本杰明·P·伊沃瓦斯基为满足计算机科学博士学位的要求而提交的论文评审团成员:先生蒂埃里·A·退休记者先生尤尼斯·B·恩