[typo](docs) add a python example for stream load. (#20697)
This commit is contained in:
86
samples/stream_load/python/DorisStreamLoad.py
Normal file
86
samples/stream_load/python/DorisStreamLoad.py
Normal file
@ -0,0 +1,86 @@
|
||||
# coding=utf-8
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import requests
|
||||
from requests.auth import HTTPBasicAuth
|
||||
import base64
|
||||
|
||||
# This script is a python demo for doris stream load
|
||||
#
|
||||
# How to use:
|
||||
# 1. create a table in doris with any mysql client
|
||||
# CREATE TABLE `db0`.`t_user` (
|
||||
# `id` int,
|
||||
# `name` string
|
||||
# )
|
||||
# DUPLICATE KEY(`id`)
|
||||
# DISTRIBUTED BY HASH(`id`) BUCKETS 1
|
||||
# PROPERTIES (
|
||||
# "replication_num" = "1"
|
||||
# );
|
||||
#
|
||||
# 2. change the Doris cluster, db, user config in this class
|
||||
#
|
||||
# 3. run this script, you should see the following output:
|
||||
#
|
||||
# 200 OK
|
||||
# {
|
||||
# "TxnId": 14017,
|
||||
# "Label": "2486da70-94bb-47cc-a810-70791add2b8c",
|
||||
# "TwoPhaseCommit": "false",
|
||||
# "Status": "Success",
|
||||
# "Message": "OK",
|
||||
# "NumberTotalRows": 2,
|
||||
# "NumberLoadedRows": 2,
|
||||
# "NumberFilteredRows": 0,
|
||||
# "NumberUnselectedRows": 0,
|
||||
# "LoadBytes": 13,
|
||||
# "LoadTimeMs": 54,
|
||||
# "BeginTxnTimeMs": 1,
|
||||
# "StreamLoadPutTimeMs": 12,
|
||||
# "ReadDataTimeMs": 0,
|
||||
# "WriteDataTimeMs": 11,
|
||||
# "CommitAndPublishTimeMs": 28
|
||||
# }
|
||||
if __name__ == '__main__':
|
||||
database, table = 'db0', 't_user'
|
||||
username, password = 'root', ''
|
||||
url = 'http://127.0.0.1:8030/api/%s/%s/_stream_load' % (database, table)
|
||||
headers = {
|
||||
'Content-Type': 'text/plain; charset=UTF-8',
|
||||
# 'label': 'your_custom_label',
|
||||
'format': 'csv',
|
||||
"column_separator": ',',
|
||||
'Expect': '100-continue',
|
||||
# 'Authorization': 'Basic ' + base64.b64encode((username + ':' + password).encode('utf-8')).decode('ascii')
|
||||
}
|
||||
auth = HTTPBasicAuth(username, password)
|
||||
session = requests.sessions.Session()
|
||||
session.should_strip_auth = lambda old_url, new_url: False # Don't strip auth
|
||||
|
||||
data='1,Tom\n2,Jelly'
|
||||
|
||||
resp = session.request(
|
||||
'PUT', url=url,
|
||||
data=data, # open('/path/to/your/data.csv', 'rb'),
|
||||
headers=headers, auth=auth
|
||||
)
|
||||
|
||||
print(resp.status_code, resp.reason)
|
||||
print(resp.text)
|
||||
Reference in New Issue
Block a user